Compiling
Dependencies
ZERO requires a few external libraries to work. Most of these are managed via Conda package manager. A mandatory requirement to use the software as-it-is is CMake, which will manage the integration with Conan by itself.
The required packages for ZERO are:
CMake (Version 3.14 or later)
Conda (A somehow recent version)
Gurobi (Version 9.2 or later) as a MIP solver.
PATH (Version 5.0 or later) as an LCP solver. You can get a license here.
The following packages will be installed by Conda
Armadillo (Version 9.8 or later) for the linear algebra.
Boost (Version 1.72 or later) required for the shell interfaces and the unit tests.
RapidJSON (Version 1.1.0 or later) suggested but not mandatory for easy management of JSON output files.
CoinOR Cgl, Osi, and Utils (Builds >= Jan 2021) for cut generation, solver interfaces and utilities.
Recommended but not mandatory for the documentation
Downloading and Compiling
First, clone the repository of ZERO from GitHub with:
git clone https://github.com/ds4dm/ZERO
To build the targets with CMake, then:
cd ZERO/
cmake .. && make
If the required packages are installed, Conda and CMake will correctly perform the installation by fetching the remaining components.
You can supply an extra hint for the Gurobi PATH with the CMake argument -DZERO_GUROBIHINT:STRING=/gurobi_path/distribution
You can disable external dependencies install through conda with the CMake argument -DZERO_INSTALL_DEPS=OFF