4.2 KiB
The default branch of our git repository is developer. It contains the latest development version. It is expected to compile and work but features might be added or tweaked. In some cases the API might also change without being communicated. If absolute stability of the API is needed please use one of the release versions.
Installation
Build from source using CMake
Note that on some systems, for example RH7, cmake v3+ is available under the cmake3 alias. It is also required to clone with the option --recursive to get the git submodules used in the package.
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git
mkdir build && cd build
cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path
make -j12 #or whatever number of cores you are using to build
make installThe easiest way to configure options is to use the ccmake utility.
#from the build directory
ccmake .Build using cmk.sh script
These are mainly aimed at those not familiar with using ccmake and cmake.
The binaries are generated in slsDetectorPackage/build/bin directory.
Usage: $0 [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [m] [n] [-h] [z] [-d <HDF5 directory>] [-l Install directory] [-k <CMake command>] [-j <Number of threads>]
-[no option]: only make
-c: Clean
-b: Builds/Rebuilds CMake files normal mode
-p: Builds/Rebuilds Python API
-h: Builds/Rebuilds Cmake files with HDF5 package
-d: HDF5 Custom Directory
-k: CMake command
-l: Install directory
-t: Build/Rebuilds only text client
-r: Build/Rebuilds only receiver
-g: Build/Rebuilds only gui
-s: Simulator
-u: Chip Test Gui
-j: Number of threads to compile through
-e: Debug mode
-i: Builds tests
-m: Manuals
-n: Manuals without compiling doxygen (only rst)
-z: Moench zmq processor
# get all options
./cmk.sh -?
# new build and compile in parallel:
./cmk.sh -bj5Install binaries using conda
Conda is not only useful to manage python environments but can also be used as a user space package manager.
We have three different packages available:
- slsdetlib, shared libraries and command line utilities
- slsdetgui, GUI
- slsdet, Python bindings
#Add channels for dependencies and our library
conda config --add channels conda-forge
conda config --add channels slsdetectorgroup
conda config --set channel_priority strict
#cerate an environment with our library, then activate
#replace 2020.07.20.dev0 with the required tag
conda create -n myenv slsdetlib=2020.07.23.dev0
conda activate myenv
#ready to use
sls_detector_get exptime
etc ...#List available versions
conda search slsdetBuild from source on old distributions
If your linux distribution doesn't come with a C++11 compiler (gcc>4.8) then it's possible to install a newer gcc using conda and build the slsDetectorPackage using this compiler
#Create an environment with the dependencies
conda create -n myenv gxx_linux-64 cmake zmq
conda activate myenv
cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX
make -j12Build this documentation
The documentation for the slsDetectorPackage is build using a combination of Doxygen, Sphinx and Breathe. The easiest way to install the dependencies is to use conda
conda create -n myenv python sphinx sphinx_rtd_themeThen enable the option SLS_BUILD_DOCS to create the targets
make docs # generate API docs and build Sphinx RST
make rst # rst only, saves time in case the API did not change