Build Options
Variants
The following options can be added to the cmake call to control features.
CMake controls options with prefixed -D, e.g. -DopenPMD_USE_MPI=OFF:
CMake Option |
Values |
Description |
|---|---|---|
|
AUTO/ON/OFF |
Parallel, Multi-Node I/O for clusters |
|
AUTO/ON/OFF |
HDF5 backend ( |
|
AUTO/ON/OFF |
ADIOS2 backend ( |
|
AUTO/ON/OFF |
Enable Python bindings |
|
ON/OFF |
Enable unit tests that modify source code 1 |
|
ON/OFF |
Enable internal VERIFY (assert) macro independent of build type 2 |
|
ON/OFF |
Add installation targets |
|
ON/OFF |
Add RPATHs to installed binaries |
|
(newest found) |
Path to Python executable |
|
ON/OFF |
In-/Exclude optional features implemented with |
1 e.g. changes C++ visibility keywords, breaks MSVC
2 this includes most pre-/post-condition checks, disabling without specific cause is highly discouraged
3 currently only used for supporting pathlib.Path-type arguments in the Python API; a manual fallback implementation is used otherwise
Debug
By default, the Release version is built.
In order to build with debug symbols, pass -DCMAKE_BUILD_TYPE=Debug to your cmake command.
Shipped Dependencies
Additionally, the following libraries are downloaded and built internally for convenience, with defaults controlled by the openPMD_SUPERBUILD option.
These might get installed in your CMAKE_INSTALL_PREFIX if the option is ON.
The following options allow to switch to external installs of dependencies:
CMake Option |
Values |
Installs |
Library |
Version |
|---|---|---|---|---|
|
ON/OFF |
|||
|
ON/OFF |
No |
Catch2 |
2.13.10+ |
|
ON/OFF |
No |
pybind11 |
2.13.0+ |
|
ON/OFF |
No |
NLohmann-JSON |
3.9.1+ |
|
ON/OFF |
No |
toml11 |
3.7.1+ |
Developers can also use a local copy of the source directories or control the exact version to download:
CMake Option |
Default & Values |
Description |
|---|---|---|
|
None |
Path to Catch2 source directory (preferred if set) |
|
we set and maintain a compatible version |
Remote tarball link to pull and build Catch2 from |
|
we set and maintain a compatible version |
Hash checksum of the tarball of Catch2 |
|
|
Repository URI to pull and build Catch2 from |
|
we set and maintain a compatible commit |
Repository branch for |
|
None |
Path to pybind11 source directory (preferred if set) |
|
we set and maintain a compatible version |
Remote tarball link to pull and build pybind11 from |
|
we set and maintain a compatible version |
Hash checksum of the tarball of pybind11 |
|
|
Repository URI to pull and build pybind11 from |
|
we set and maintain a compatible commit |
Repository branch for |
|
None |
Path to NLohmann JSON source directory (preferred if set) |
|
we set and maintain a compatible version |
Remote tarball link to pull and build NLohmann JSON from |
|
we set and maintain a compatible version |
Hash checksum of the tarball of NLohmann JSON |
|
|
Repository URI to pull and build NLohmann JSON from |
|
we set and maintain a compatible commit |
Repository branch for |
|
None |
Path to TOML11 source directory (preferred if set) |
|
we set and maintain a compatible version |
Remote tarball link to pull and build TOML11 from |
|
we set and maintain a compatible version |
Hash checksum of the tarball of TOML11 |
|
|
Repository URI to pull and build TOML11 from |
|
we set and maintain a compatible commit |
Repository branch for |
The precedence for these options is:
existing targets found in a superbuild (from another project)
_srcis specified_taris specified_repo+_branchare specified
Tests, Examples and Command Line Tools
By default, tests, examples and command line tools are built.
In order to skip building those, pass OFF to these cmake options:
CMake Option |
Values |
Description |
|---|---|---|
|
ON/OFF |
Build tests |
|
ON/OFF |
Build examples |
|
ON/OFF |
Build command-line tools |
|
ON/OFF |
Use CUDA in examples |