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 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 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.