CMake Reference
This page documents the project-specific CMake configuration from
CMakeLists.txt and CMakePresets.json.
Recommended: workflow-first builds
Use workflow presets as the default entry point. They run the expected configure/build/test sequence and reduce manual flag drift.
# Release builds
cmake --workflow --preset build-release-default
cmake --workflow --preset build-release-tbb
cmake --workflow --preset build-release-omp
# Test, Python interface, and docs
cmake --workflow --preset build-and-test
cmake --workflow --preset build-python-interface
cmake --workflow --preset build-docs
Project Options
* BUILD_KD_TREE_LIBRARY is a dependent option and is forced ON when
the executable or tests are enabled.
Standard CMake Variables
Variable |
Description |
|---|---|
|
Used for single-config generators (for example Ninja).
Presets set |
Presets Overview
Configure presets (from CMakePresets.json):
Preset |
Inherits |
Main purpose |
|---|---|---|
|
|
Standard release build (CPP backend). |
|
|
Debug build, |
|
|
Release build with OpenMP backend. |
|
|
Release build with TBB backend. |
|
|
Enables tests and sets logging to |
|
|
Python interface (CPP backend), CLI off. |
|
|
Python interface with TBB backend. |
|
|
Python interface with OpenMP backend. |
|
|
Docs-only configure preset. |
Build presets:
release,debug,release-omp,release-tbbtestpython-cpp,python-omp,python-tbbdocs-build(build target:Sphinx)
Test presets:
test
Workflow presets:
build-release-defaultbuild-release-ompbuild-release-tbbbuild-and-testbuild-python-interfacebuild-docs
Typical Commands
Preferred: run workflows directly:
# cmake --workflow --preset <preset-name>
cmake --workflow --preset build-release-default
cmake --workflow --preset build-release-tbb
cmake --workflow --preset build-release-omp
cmake --workflow --preset build-and-test
cmake --workflow --preset build-python-interface
cmake --workflow --preset build-docs
Alternative: manual configure/build (only when custom flags are needed):
cmake -S . -B build/custom \
-DCMAKE_BUILD_TYPE=Release \
-DKD_TREE_PARALLELIZATION=OMP \
-DKD_TREE_LOGGING_LEVEL=INFO \
-DBUILD_KD_TREE_EXECUTABLE=ON \
-DBUILD_KD_TREE_TESTS=OFF
cmake --build build/custom