mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 03:40:04 +02:00
154 lines
4.2 KiB
ReStructuredText
154 lines
4.2 KiB
ReStructuredText
|
|
|
|
|
|
.. note ::
|
|
|
|
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.
|
|
|
|
.. warning ::
|
|
|
|
Before building from source make sure that you have the
|
|
:doc:`dependencies <../dependencies>` installed. If installing using conda, conda will
|
|
manage the dependencies.
|
|
|
|
|
|
.. _Installation:
|
|
|
|
Installation
|
|
==============================================
|
|
|
|
.. _build from source using cmake:
|
|
|
|
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.
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
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 install
|
|
|
|
The easiest way to configure options is to use the ccmake utility.
|
|
|
|
.. code-block:: bash
|
|
|
|
#from the build directory
|
|
ccmake .
|
|
|
|
|
|
Build using cmk.sh script
|
|
-------------------------
|
|
These are mainly aimed at those not familiar with using ccmake and cmake.
|
|
|
|
.. code-block:: bash
|
|
|
|
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 -bj5
|
|
|
|
|
|
Install 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
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
#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 ...
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
#List available versions
|
|
conda search slsdet
|
|
|
|
|
|
Build 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
|
|
|
|
.. code-block:: bash
|
|
|
|
#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 -j12
|
|
|
|
|
|
Build 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
|
|
|
|
.. code-block:: bash
|
|
|
|
conda create -n myenv python sphinx sphinx_rtd_theme
|
|
|
|
Then enable the option SLS_BUILD_DOCS to create the targets
|
|
|
|
.. code-block:: bash
|
|
|
|
make docs # generate API docs and build Sphinx RST
|
|
make rst # rst only, saves time in case the API did not change |