{ "version": 2, "cmakeMinimumRequired": { "major": 3, "minor": 18, "patch": 0 }, "configurePresets": [ { "name": "cmake-pedantic", "hidden": true, "warnings": { "dev": true, "deprecated": true, "uninitialized": true, "unusedCli": true, "systemVars": false }, "errors": { "dev": true, "deprecated": true } }, { "name": "dev-mode", "hidden": true, "inherits": "cmake-pedantic", "cacheVariables": { "sleigh_DEVELOPER_MODE": "ON", "sleigh_BUILD_DOCUMENTATION": "ON" } }, { "name": "ci-std", "description": "This preset makes sure the project actually builds with at least the specified standard", "hidden": true, "cacheVariables": { "CMAKE_CXX_EXTENSIONS": "OFF", "CMAKE_CXX_STANDARD": "11", "CMAKE_CXX_STANDARD_REQUIRED": "ON", "CMAKE_POSITION_INDEPENDENT_CODE": "ON" } }, { "name": "ci-std-tools", "description": "This preset makes sure the project actually builds with at least the specified standard for extra sleigh tools", "hidden": true, "inherits": "ci-std", "cacheVariables": { "CMAKE_CXX_STANDARD": "17" } }, { "name": "flags-unix", "hidden": true, "cacheVariables": { "CMAKE_CXX_FLAGS": "-Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wcast-qual -Wshadow -Wformat=2 -Wundef" } }, { "name": "flags-windows", "description": "Note that all the flags after /W4 are required for MSVC to conform to the language standard", "hidden": true, "cacheVariables": { "CMAKE_CXX_FLAGS": "/utf-8 /W4 /permissive- /volatile:iso /Zc:preprocessor /EHsc /Zc:__cplusplus /Zc:externConstexpr /Zc:throwingNew" } }, { "name": "ci-unix", "generator": "Unix Makefiles", "hidden": true, "inherits": ["flags-unix", "ci-std"], "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, { "name": "ci-win64", "inherits": ["flags-windows", "ci-std"], "generator": "Visual Studio 18 2026", "architecture": "x64", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake", "VCPKG_TARGET_TRIPLET": "x64-windows-static" }, "hidden": true }, { "name": "coverage-unix", "binaryDir": "${sourceDir}/build/coverage", "inherits": "ci-unix", "hidden": true, "cacheVariables": { "ENABLE_COVERAGE": "ON", "CMAKE_BUILD_TYPE": "Coverage", "CMAKE_CXX_FLAGS_COVERAGE": "-Og -g --coverage -fkeep-static-functions", "CMAKE_EXE_LINKER_FLAGS_COVERAGE": "--coverage", "CMAKE_SHARED_LINKER_FLAGS_COVERAGE": "--coverage" } }, { "name": "ci-coverage", "inherits": ["coverage-unix", "dev-mode"], "cacheVariables": { "COVERAGE_HTML_COMMAND": "" } }, { "name": "ci-sanitize", "binaryDir": "${sourceDir}/build/sanitize", "inherits": ["ci-unix", "dev-mode"], "cacheVariables": { "CMAKE_BUILD_TYPE": "Sanitize", "CMAKE_CXX_FLAGS_SANITIZE": "-O2 -g -fsanitize=address,undefined -fno-omit-frame-pointer -fno-common" } }, { "name": "ci-assertions", "binaryDir": "${sourceDir}/build/assertions", "inherits": ["ci-unix", "dev-mode"], "cacheVariables": { "CMAKE_BUILD_TYPE": "Assertions", "CMAKE_CXX_FLAGS_ASSERTIONS": "-O0 -g -stdlib=libc++ -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG -fstack-protector-strong", "CMAKE_EXE_LINKER_FLAGS_ASSERTIONS": "-stdlib=libc++ -lc++abi", "CMAKE_SHARED_LINKER_FLAGS_ASSERTIONS": "-stdlib=libc++ -lc++abi" } }, { "name": "ci-build", "binaryDir": "${sourceDir}/build", "hidden": true }, { "name": "ci-macos", "inherits": ["ci-build", "ci-unix", "dev-mode"] }, { "name": "ci-ubuntu", "inherits": ["ci-build", "ci-unix", "dev-mode"] }, { "name": "ci-windows", "inherits": ["ci-build", "ci-win64", "dev-mode"] } ] }