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 - `DOxygen `__ (Version 1.8 or later) to generate the C++ documentation - `Sphinx `__ (Version 1.8 or later) to render the HTML into a ReadTheDocs template - `Exhale `__ (Version 0.2.3 or later) and `Breathe `__ (Version 4.10 or later) to integrate Doxygen, Sphinx and the ReadTheDocs template Downloading and Compiling ********************************* First, clone the repository of ZERO from GitHub with: .. code-block:: python git clone https://github.com/ds4dm/ZERO To build the targets with CMake, then: .. code-block:: python 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`