This is a very targeted addition, which can be generalized. It
makes the following changes:
1. In the solver creation call of the Gurobi interface, i.e.
the constructor `GurobiInterface::GurobiInterface`, the GLOG
severity level is reduced to `DFATAL`, which becomes `ERROR` in
production. This means errors in calls to `GRBloadenv` no longer
automatically kill the process as a side effect.
2. An `std::runtime_error` exception is raised with the return code
and the error message from GRBloadenv. This replaces the functionality
of exiting the process when this error is unhandled. Additionally,
it enables alternate handling by the caller.
3. In the linear solver SWIG wrapper, exception wrapping is turned
on specifically for the `MPSolver::MPSolver` constructor call and
the `std::runtime_error` that may now occur there. This exception
is re-raised as the corresponding RuntimeError in the target language.
Addresses issue #699.
Dependencies:
- Add dependencies as subprojects instead of prebuild (aka imported target)
- add zlib project
- Use Cbc as CMake subproject instead of prebuilt
- Add log between each subproject
- Force gflags namespace to gflags
Or-tools:
- Rework python.cmake support
- Fix missing ortool.util in python (#558)
- Try to use static library for ortools::proto
pros: can use target_link_libraries to get includes etc...
cons: lot of symbols undefined since libortools.so will strip everything -_-
- Use add_library(XXX OBJECT) for ortools/*
- fix get version from git when using small depth copy
- Create Install rule for ortools
- Don't create export rules
note: since we use subprojects instead of Imported Target,
ortools export complained against target deps "that is not in the export set."
Update windows support
- add swig project
- Protobuf force the use of /MD instead of /MT
- or-tools use /MD by default
- Add missing ws2_32
- Add missing psapi
- Update windows disable warnings list
- Build Static or-tools on Windows
- fix windows export symbols leak issue
Signed-off-by: Corentin Le Molgat <corentinl@google.com>