Some of these options are enabled by default ("Defaults to ON") otherwise they must be explicitly set to ON.
You can pass any CMake variable or option with -DVARIABLE_NAME=VALUE
(note the
-D
in front) to the CMake command.
You can also overwrite the generator with the -G
parameter or the
build-directory with the -B
parameter.
CMake switches to enable / disable parts of OGS.
OGS_BUILD_CLI
- Builds the simulator. Defaults to ON. If set to OFF all processes are also disabled (see variable OGS_BUILD_PROCESSES
below).OGS_BUILD_GUI
- Builds the Data Explorer. Defaults to OFF.OGS_BUILD_TESTING
- Builds the test executables. Defaults to ON.OGS_BUILD_UTILS
- Builds several utilities.OGS_BUILD_PROCESS_X
- For enabling/disabling compilation of process X
.
Run the CMake-GUI / ccmake
to see a list of processes.OGS_BUILD_PROCESSES
- A ;
-separated list specifying processes to build, e.g. -DOGS_BUILD_PROCESSES="HT;LIE"
. Can be set to ON which means all processes are built or can be set to OFF to disable all processes. Attention: Setting this variable overrides individual OGS_BUILD_PROCESS_X
-variables! This option is mainly used for CI and automation. Also the value of this variable is not cached.OGS_USE_PIP
- Creates a python virtual environment in the .venv-directory
inside the build directory, that includes useful packages like ogstools,
Jupyter and more. Defaults to OFF. See also
https://www.opengeosys.org/docs/devguide/packages/python-env/.CMAKE_BUILD_TYPE
- Defaults to Debug
which builds with debugging information, set to Release
for an optimized build.OGS_PROFILE
- Builds with profiling flags (-pg
).OGS_CMAKE_DEBUG
- Prints out the values of all defined CMake variables at CMake configuration time.CMAKE_BUILD_TYPE
- Set to Release
to build with optimization flags, set to Debug
for debugging.OGS_COVERAGE
- Enables code coverage measurements with gcov
/ lcov
. TODOOGS_CXX_FLAGS
- Appends user-given compiler flags. Note that existing (CMake-given) flags are not replaced.
OGS_PACKAGE_ADDITIONAL_BINARIES
- Package additional binaries (given as a ;
-separated list with relative paths to CMAKE_BINARY_DIR
) into redistributables. Is used for bundling the OGS File Converter with the Data Explorer.
OGS_CPU_ARCHITECTURE
- Optimizes for the given CPU architecture see -march-flag. Defaults to native
. For redistributable binaries set to generic
on Linux and core2
on Mac OS. Can be disabled when set to OFF
.
CMAKE_LIBRARY_SEARCH_PATH
- Additional library installation path, e.g. /opt/local
or C:/libs
OGS_DEPENDENCY_VERSIONS
- Overwrite individual entries in web/data/versions.json
. Should be quoted and ;
-separated, e.g.: -DOGS_DEPENDENCY_VERSIONS="minimum_version.petsc=3.16.2;ctest.large_runtime=120"
.
OGS_USE_MKL
- Enables MKL support. Requires MKL (as part of the Intel oneAPI toolkit) to be installed on the system.
Before configuring with CMake you also need to source the setvars.sh
-script. On a typical installation run this: source /opt/intel/oneapi/setvars.sh
(Windows: & "C:\Program Files (x86)\Intel\oneAPI\setvars.bat"
). This will set the MKLROOT
environment variable and also the DYLD_LIBRARY_PATH
to contain the MKL library locations (both variables will be checked by CMake).
To enable 64-bit array indices in MKL add -DMKL_INTERFACE=ilp64
on the first CMake run (with a clean CMake cache) but this seems not supported by Eigen.
OGS_EIGEN_PARALLEL_BACKEND
- Defaults to OpenMP
. Defaults to MKL
when OGS_USE_MKL=ON
. May be set to OpenMP
when MKL is on which also enables OpenMP multithreading. This pulls in another OpenMP implementation besides the Intel MKL OpenMP which is an experimental feature!. If you want to use OpenMP parallelized assembly with MKL enabled you also need to explicitly set OGS_EIGEN_PARALLEL_BACKEND=OpenMP
!
This article was written by Lars Bilke. If you are missing something or you find an error please let us know.
Generated with Hugo 0.122.0
in CI job 504124
|
Last revision: December 13, 2024
Commit: [doc] Devguide changes. abffd6e
| Edit this page on