CMake options reference¶
High-level switches for OpenPFC. Defaults are chosen for a normal MPI + HeFFTe developer build. Full context (toolchains, CUDA/HIP, HeFFTe layout) remains in INSTALL.md.
What to build¶
Option |
Default |
Meaning |
|---|---|---|
|
ON |
|
|
ON |
|
|
ON |
|
|
OFF |
Extra benchmarks under |
|
ON |
Doxygen |
Defined in cmake/BuildOptions.cmake and cmake/Dependencies.cmake.
Features and dependencies¶
Option |
Default |
Meaning |
|---|---|---|
|
ON |
MPI required for supported builds; OFF is unsupported — see |
|
ON |
Distributed FFT via HeFFTe. OFF is an FD-only / kernel-only build: no HeFFTe find, no |
|
OFF |
CUDA toolkit/runtime support and CUDA apps that do not require spectral FFTs (for example FD/kernels-only apps). CUDA spectral targets are enabled only when CUDA HeFFTe is also found ( |
|
OFF |
ROCm/HIP and |
|
OFF |
HDF5 export for profiling dumps (see |
|
(see CMake) |
Fetch/build HeFFTe via CMake when not found (see |
|
OFF |
NaN checks beyond Debug (see |
|
ON where supported |
Coverage targets; often OFF on clusters ( |
GPU-aware MPI toggles (OpenPFC_MPI_CUDA_AWARE / OpenPFC_MPI_HIP_AWARE) and CUDA/HIP compiler discovery are described in INSTALL.md and INSTALL.LUMI.md. When CUDA or HIP is enabled, OpenPFC_ENABLE_CUDA / OpenPFC_ENABLE_HIP and the matching MPI-aware flags are PUBLIC compile definitions on OpenPFC::openpfc (and the vendor kernel libraries), so find_package(OpenPFC) consumers see the same macros as the in-tree build. OpenPFC_ENABLE_GPU_AUTOTUNING is exported the same way when that option is ON.
Library and profiling¶
Setting |
Meaning |
|---|---|
|
Single-config default is RelWithDebInfo if unset ( |
|
OFF = static |
|
|
Implementation detail: the openpfc library merges CMake OBJECT targets openpfc_kernel_obj and openpfc_frontend_obj (cmake/LibraryConfiguration.cmake). Downstream find_package(OpenPFC) usage is unchanged — link OpenPFC::openpfc only; the object targets are build internals, not installed.
Development¶
Option |
Default |
Meaning |
|---|---|---|
|
OFF |
When ON, enables |
|
OFF |
Sanitizers (see |
Presets¶
CMakePresets.json and cmake/toolchains/tohtori-gcc11-openmpi.cmake pin cluster-friendly configure flags; see INSTALL.md (“VS Code / Cursor on tohtori”).
See also¶
quickstart.md— minimal configure linetesting.md—OpenPFC_BUILD_TESTS, CTest, Catch2 filterstroubleshooting.md— when configure fails