Dependencies ========================= While we value few dependencies some libraries are required in order to not have to reinvent the wheel. Due to the state of package management in C++ we decided to bundle some of them with our source code. These are found in the libs/ directory. ----------------------- Core ----------------------- To use the basic building blocks, meaning sls_detector_get/put and the shared libraries these are needed: * Linux, preferably recent kernel (currently no cross platform support) * CMake >= 3.14 * C++17 compatible compiler. (We test with gcc and clang) .. note:: For v9.x.x of slsDetectorPackage and older, C++11 compatible compiler. Additionally the core requires the following dependencies: * fmt 12.1.0 (packaged in libs) * ZeroMQ 4.3.4 (packaged in libs) * rapidjson (packaged in libs) .. note:: Both fmt, ZeroMQ and rapidjson are bundled in libs. One does not need to pre-install them on the system. Alternatively, one can fetch fmt and ZeroMQ from GitHub by passing the cmake options ``-DSLS_FETCH_FMT_FROM_GITHUB=ON`` and ``-DSLS_FETCH_ZEROMQ_FROM_GITHUB=ON`` respectively. .. note:: Refer :ref:`zeromq notes. ` ------------------------------------ Dependencies to build Python module ------------------------------------ To build the python module the following dependencies are needed: * Python >= 3.8 * pybind11 2.13.6 (packaged in libs) .. note:: pybind11 is bundled in libs. One does not need to pre-install it on the system. Alternatively, one can fetch pybind11 from GitHub by passing the cmake option ``-DSLS_FETCH_PYBIND11_FROM_GITHUB=ON``. .. note:: Refer :ref:`pybind11 notes. ` ------------------------------------ Dependencies to build documentation ------------------------------------ To build this documentation that you are reading now the following dependencies are needed: * Doxygen (to extract C++ classes etc.) * Breathe (Sphinx plugin to handle doxygen xml) * Sphinx with sphinx_rtd_theme ------------------------- Dependencies to build GUI ------------------------- To build the GUI the following dependencies are needed: * Qt 5.9 * Qwt 6.1.5 (packaged in libs) .. note:: Qwt is bundled in libs. One does not need to pre-install it on the system. ----------------------------------------------------- Dependencies to build Moench and Jungfrau executables ----------------------------------------------------- To build the Moench and Jungfrau executables for preprocessing and calibration the following dependencies are needed: * libtiff -------------------------------------------------- Dependencies to build Tests -------------------------------------------------- To build the tests the following dependencies are needed: * Catch2 3.4.0 (packaged in libs) .. note:: Catch2 is bundled in libs. One does not need to pre-install it on the system.