-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
900: bumped pybind11 version and added setuptools on host (#1050)
* bumped pybind11 version and added setuptools on host * updated pybind11 tarball to 2.13 and in cmakefile to get 2.13 frpm github, also updated documentation about pybind 2.13 * update release notes, doc * updating readme --------- Co-authored-by: Erik Fröjdh <[email protected]>
- Loading branch information
1 parent
9fd21ac
commit 7ea6b31
Showing
9 changed files
with
110 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,11 @@ | |
Before building from source make sure that you have the [software wiki](https://slsdetectorgroup.github.io/devdoc/dependencies.html) installed. If installing using conda, conda will manage the dependencies. Avoid also installing packages with pip. | ||
|
||
## Documentaion | ||
Detailed documentation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html) and on the [official site](https://www.psi.ch/en/detectors/software). | ||
Detailed documentation including installation can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html). | ||
|
||
Different releases can be found on the [official site](https://www.psi.ch/en/lxn/software-releases). | ||
|
||
Firmware compatiblity can be found in [firmware page](https://github.com/slsdetectorgroup/slsDetectorFirmware) | ||
|
||
## Installation | ||
|
||
|
@@ -42,33 +46,20 @@ conda search slsdet | |
conda search slsdetgui | ||
``` | ||
|
||
### 2. Build from source | ||
## 2. Build from source | ||
|
||
##### 2.1 Download Source Code from github | ||
### 2.1 Download Source Code from github | ||
``` | ||
git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git --branch 7.0.0 | ||
``` | ||
|
||
**Pybind for Python**<br> | ||
* **v7.0.0+**: | ||
pybind11 packaged into 'libs/pybind'. No longer a submodule. No need for "recursive" or "submodule update". | ||
|
||
* **Older versions**: | ||
pybind11 is a submodule. Must be cloned using "recursive" and updated when switching between versions using the following commands. | ||
|
||
``` | ||
# clone using recursive to get pybind11 submodule | ||
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git | ||
> **Note:** For v6.x.x of slsDetectorPackage and older, refer [pybind11 notes on cloning](#Pybind-and-Zeromq). | ||
# update submodule when switching between releases | ||
cd slsDetectorPackage | ||
git submodule update --init | ||
``` | ||
|
||
##### 2.2 Build from source | ||
### 2.2 Build from source | ||
|
||
|
||
###### Build using CMake | ||
### Build using CMake | ||
|
||
``` | ||
# outside slsDetecorPackage folder | ||
|
@@ -94,26 +85,28 @@ Instead of the cmake command, one can use ccmake to get a list of options to con | |
ccmake .. | ||
# choose the options | ||
# first press [c] - configure | ||
# first press [c] - configure (unil you see [g]) | ||
# then press [g] - generate | ||
``` | ||
|
||
|Example cmake options|Comment| | ||
|---|---| | ||
| -DSLS_USE_PYTHON=ON | Python | | ||
| -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda environment | | ||
| -DZeroMQ_HINT=/usr/lib64 | Use system zmq instead | | ||
| -DPython_FIND_VIRTUALENV=ONLY | Python from only the conda env | | ||
| -DSLS_USE_GUI=ON | GUI | | ||
| -DSLS_USE_HDF5=ON | HDF5 | | ||
| -DSLS_USE_SIMULATOR=ON | Simulator | | ||
|
||
> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmake option to hint library location](#Pybind-and-Zeromq). | ||
###### Build using in-built cmk.sh script | ||
### Build using in-built cmk.sh script | ||
|
||
``` | ||
The binaries are generated in slsDetectorPackage/build/bin directory. | ||
Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of threads>] | ||
[-k <CMake command>] [-l <Install directory>] [m] [n] [-p] [-q <Zmq hint directory>] | ||
[r] [s] [t] [u] [z] | ||
Usage: $0 [-b] [-c] [-d <HDF5 directory>] [-e] [-g] [-h] [-i] | ||
[-j <Number of threads>] [-k <CMake command>] [-l <Install directory>] | ||
[-m] [-n] [-p] [-r] [-s] [-t] [-u] [-z] | ||
-[no option]: only make | ||
-b: Builds/Rebuilds CMake files normal mode | ||
-c: Clean | ||
|
@@ -128,14 +121,13 @@ Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of | |
-m: Manuals | ||
-n: Manuals without compiling doxygen (only rst) | ||
-p: Builds/Rebuilds Python API | ||
-q: Zmq hint directory | ||
-r: Build/Rebuilds only receiver | ||
-s: Simulator | ||
-t: Build/Rebuilds only text client | ||
-u: Chip Test Gui | ||
-z: Moench zmq processor | ||
# display all options | ||
./cmk.sh -? | ||
|
@@ -145,11 +137,14 @@ Usage: ./cmk.sh [-b] [-c] [-d <HDF5 directory>] [e] [g] [-h] [i] [-j <Number of | |
# new build, python and compile in parallel: | ||
./cmk.sh -cbpj5 | ||
#To use the system zmq (/usr/lib64) instead | ||
./cmk.sh -cbj5 -q /usr/lib64 | ||
#For rebuilding only certain sections | ||
./cmk.sh -tg #only text client and gui | ||
./cmk.sh -r #only receiver | ||
``` | ||
|
||
###### Build on old distributions | ||
> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for cmk script option to hint library location](#Pybind-and-Zeromq). | ||
### Build 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 | ||
|
@@ -166,7 +161,10 @@ cmake ../slsDetectorPackage -DCMAKE_PREFIX_PATH=$CONDA_PREFIX | |
make -j12 | ||
``` | ||
|
||
###### Build slsDetectorGui (Qt5) | ||
> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq). | ||
|
||
### Build slsDetectorGui (Qt5) | ||
|
||
1. Using pre-built binary on conda | ||
``` | ||
|
@@ -180,7 +178,14 @@ yum install qt5-qtbase-devel.x86_64 | |
yum install qt5-qtsvg-devel.x86_64 | ||
``` | ||
|
||
3. Using conda | ||
3. Using system installation on RHEL8 | ||
``` | ||
yum install qt5-qtbase-devel.x86_64 | ||
yum install qt5-qtsvg-devel.x86_64 | ||
yum install expat-devel.x86_64 | ||
``` | ||
|
||
4. Using conda | ||
``` | ||
#Add channels for dependencies and our library | ||
conda config --add channels conda-forge | ||
|
@@ -208,13 +213,15 @@ cd slsDetectorPackage | |
./cmk.sh -cbgj9 | ||
``` | ||
|
||
###### Build documentation from package | ||
> **Note:** For v7.x.x of slsDetectorPackage and older, refer [zeromq notes for dependencies for conda](#Pybind-and-Zeromq). | ||
### Build documentation from package | ||
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_rtd_theme breathe | ||
conda create -n myenv python=3.12 sphinx sphinx_rtd_theme breathe doxygen numpy | ||
``` | ||
|
||
``` | ||
|
@@ -228,6 +235,47 @@ make rst # rst only, saves time in case the API did not change | |
``` | ||
|
||
|
||
|
||
## Pybind and Zeromq | ||
|
||
### Pybind11 for Python | ||
**v8.0.0+**: | ||
pybind11 is built | ||
* by default from tar file in repo (libs/pybind/v2.1x.0.tar.gz) | ||
* or use advanced option SLS_FETCH_PYBIND11_FROM_GITHUB [link]. | ||
* v9.0.0+: pybind11 (v2.13.0) | ||
* v8.x.x : pybind11 (v2.11.0) | ||
|
||
**v7.x.x**: | ||
pybind11 packaged into ‘libs/pybind’. No longer a submodule. No need for “recursive” or “submodule update”. | ||
|
||
**Older versions**: | ||
pybind11 is a submodule. Must be cloned using “recursive” and updated when switching between versions using the following commands. | ||
|
||
``` | ||
# Note: Only for v6.x.x versions and older | ||
# clone using recursive to get pybind11 submodule | ||
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git | ||
# update submodule when switching between releases | ||
cd slsDetectorPackage | ||
git submodule update --init | ||
``` | ||
|
||
### Zeromq | ||
**v8.0.0+**: | ||
zeromq (v4.3.4) is built | ||
* by default from tar file in repo (libs/libzmq/libzmq-4.3.4.tar.gz) | ||
* or use advanced option SLS_FETCH_ZMQ_FROM_GITHUB [link]. | ||
|
||
**v7.x.x and older**: | ||
zeromq-devel must be installed and one can hint its location using | ||
* cmake option:’-DZeroMQ_HINT=/usr/lib64’ or | ||
* option ‘-q’ in cmk.sh script: : ./cmk.sh -cbj5 -q /usr/lib64 | ||
* ‘zeromq’ dependency added when installing using conda | ||
|
||
|
||
## Support | ||
[email protected] | ||
[email protected] | ||
[email protected] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters