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 |
1 e.g. changes C++ visibility keywords, breaks MSVC
2 this includes most pre-/post-condition checks, disabling without specific cause is highly discouraged
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)
_src
is specified_tar
is specified_repo
+_branch
are 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 |