diff --git a/README.md b/README.md index e142ff84b..98d313540 100755 --- a/README.md +++ b/README.md @@ -2,90 +2,67 @@ Detailed documentation can be found on the [official site.](https://www.psi.ch/detectors/users-support) ### Binaries -Documentation to obtain the binaries via the conda package is available for [lib](https://github.com/slsdetectorgroup/sls_detector_lib) and [gui](https://github.com/slsdetectorgroup/sls_detector_gui) +Binaries for the slsDetectorPackage are available through conda. +``` +#Add conda channels +conda config --add channels conda-forge +conda config --add channels slsdetectorgroup + +conda install slsdetlib #only shared lib and command line +conda install slsdet #python bindings (includes slsdetlib) +conda install slsdetgui #gui (includes qt4) + +#Install specific version +conda install slsdet=2020.03.02.dev0 #developer version from 3 March 2020 + +``` ### Source code -One can also obtain the source code from this repository and compile while realizing the setup dependencies as required. +One can also obtain the source code from this repository and compile. ``` git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git ``` -#### Setup dependencies -* Gui Client
-Requirements: Qt 4.8 and Qwt 6.0 -``` - export QTDIR=/usr/local/Trolltech/ - export QWTDIR=/usr/local/qwt-6.0.1/ -``` -If either of them does not exist, the GUI client will not be built. +#### Dependencies +* Lib: c++11 compiler (gcc=>4.8), ZeroMQ 4 +* Gui: Qt 4.8 and Qwt 6.0 +* Calibration wizards and ctbGUI: ROOT +* Optional: HDF5 -* Advanced user Calibration wizards
-Requirements: ROOT -``` - export ROOTSYS=/usr/local/root-5.34 -``` #### Compilation -Compiling can be done in two ways. +Compiling can be done in two ways. Either with the convenience script +cmk.sh or directly with cmake for more control. **1. Compile using script cmk.sh**
After compiling, the libraries and executables will be found in `slsDetectorPackage/build/bin` directory
-Usage: [-c] [-b] [-h] [-d HDF5 directory] [-j]
- * -[no option]: only make
- * -c: Clean
- * -b: Builds/Rebuilds CMake files normal mode
- * -h: Builds/Rebuilds Cmake files with HDF5 package
- * -d: HDF5 Custom Directory
- * -t: Build/Rebuilds only text client
- * -r: Build/Rebuilds only receiver
- * -g: Build/Rebuilds only gui
- * -j: Number of threads to compile through
- * -e: Debug mode - -Basic Option: -./cmk.sh -b - -For only make: -./cmk.sh - -For make clean;make: -./cmk.sh -c - -For using hdf5 without custom dir /blabla: -./cmk.sh -h -d /blabla - -For rebuilding cmake without hdf5 -./cmk.sh -b - -For using multiple cores to compile faster: -./cmk.sh -j9
- - -For rebuilding only certain sections
-./cmk.sh -tg #only text client and gui
-./cmk.sh -r #only receiver
- +Usage: [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [-h] [-d ] [-j] + -[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 + -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 + +eg. Rebuild when you switch to a new build and compile in parallel: +./cmk.sh -bj5 **2. Compile without script**
-Use cmake to create out-of-source builds, by creating a build folder parallel to source directory. +Use cmake to create out-of-source builds, by creating a build folder parallel to source directory. This would create a debug build with address sanitizers. ``` - $ cd .. - $ mkdir slsDetectorPackage-build - $ cd slsDetectorPackage-build - $ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=OFF - $ make -``` - -Use the following as an example to compile statically and using specific hdf5 folder -``` - $ HDF5_ROOT=/opt/hdf5v1.10.0 cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_HDF5=ON - ``` -After compiling, the libraries and executables will be found at `bin` directory -``` - $ ls bin/ - gui_client libSlsDetector.a libSlsDetector.so libSlsReceiver.a libSlsReceiver.so - sls_detector_acquire sls_detector_get slsDetectorGui sls_detector_help sls_detector_put slsReceiver slsMultiReceiver + $ mkdir build + $ cd build + $ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_SANITIZER=ON + $ make -j12 #or whatever number of threads wanted ```