Cmakepresets.json Example !!top!! Info
"buildPresets": [ "name": "dev-linux-gcc", "inherits": "default", "configurePreset": "dev-linux-gcc" ] When you run cmake --build --preset dev-linux-gcc , CMake automatically uses the binary directory from the corresponding configure preset. List available presets cmake --list-presets Output:
"version": 6, "cmakeMinimumRequired": "major": 3, "minor": 23, "patch": 0 , "configurePresets": [ "name": "default", "hidden": true, "generator": "Ninja", "binaryDir": "$sourceDir/build/$presetName", "cacheVariables": "CMAKE_CXX_STANDARD": "20", "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" , "name": "dev-linux-gcc", "inherits": "default", "displayName": "Linux GCC (Debug)", "description": "Debug build using GCC on Linux", "condition": "type": "equals", "lhs": "$hostSystemName", "rhs": "Linux" , "cacheVariables": "CMAKE_CXX_COMPILER": "g++", "CMAKE_BUILD_TYPE": "Debug" , "name": "dev-linux-clang", "inherits": "default", "displayName": "Linux Clang (Release)", "description": "Release build using Clang on Linux", "condition": "type": "equals", "lhs": "$hostSystemName", "rhs": "Linux" , "cacheVariables": "CMAKE_CXX_COMPILER": "clang++", "CMAKE_BUILD_TYPE": "Release" , "name": "dev-windows-msvc", "inherits": "default", "displayName": "Windows MSVC (Debug)", "description": "Debug build using MSVC on Windows", "condition": "type": "equals", "lhs": "$hostSystemName", "rhs": "Windows" , "generator": "Visual Studio 17 2022", "architecture": "value": "x64", "strategy": "set" , "cacheVariables": "CMAKE_BUILD_TYPE": "Debug" , "name": "ci-linux-release", "inherits": "dev-linux-gcc", "displayName": "CI Linux Release", "description": "Release build for CI pipelines", "cacheVariables": "CMAKE_BUILD_TYPE": "Release", "CMAKE_CXX_FLAGS": "-Wall -Wextra -Werror" ], "buildPresets": [ "name": "default", "hidden": true, "configurePreset": "default", "jobs": 4, "targets": ["all"] , "name": "dev-linux-gcc", "inherits": "default", "configurePreset": "dev-linux-gcc" , "name": "dev-linux-clang", "inherits": "default", "configurePreset": "dev-linux-clang" , "name": "dev-windows-msvc", "inherits": "default", "configurePreset": "dev-windows-msvc", "configuration": "Debug" , "name": "ci-linux-release", "inherits": "default", "configurePreset": "ci-linux-release" ] cmakepresets.json example
These become -D flags passed to CMake. They override values from inherited presets. Build presets reference a configure preset by name. The jobs field controls parallel build level. Build presets reference a configure preset by name
| Array | Purpose | |-------|---------| | "version" | Required – specifies preset file schema version. | | "configurePresets" | Defines cmake --configure options. | | "buildPresets" | Defines cmake --build options. | | "testPresets" | Defines ctest options. | | "packagePresets" | Defines cpack options (CMake 3.23+). | | "vendor" | IDE‑specific extensions (e.g., Visual Studio). | | | "configurePresets" | Defines cmake --configure options