{ "version": 8, "cmakeMinimumRequired": { "major": 3, "minor": 28, "patch": 0 }, "configurePresets": [ { "name": "base", "hidden": true, "generator": "Ninja", "binaryDir": "${sourceDir}/out/${presetName}", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": true, "BUILD_SHARED_LIBS": true, "BUILD_TESTING": true, "KUBBE_ENABLE_CCACHE": true, "KUBBE_WARNINGS_AS_ERRORS": false } }, { "name": "dev", "displayName": "Developer debug build", "inherits": "base", "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "KUBBE_ENABLE_ASSERTIONS": true, "KUBBE_SANITIZER": "none" } }, { "name": "asan-ubsan", "displayName": "AddressSanitizer + UndefinedBehaviorSanitizer", "inherits": "base", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "KUBBE_ENABLE_ASSERTIONS": true, "KUBBE_SANITIZER": "address-undefined" } }, { "name": "tsan", "displayName": "ThreadSanitizer", "inherits": "base", "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo", "KUBBE_ENABLE_ASSERTIONS": true, "KUBBE_SANITIZER": "thread" } }, { "name": "release", "displayName": "Optimized release build", "inherits": "base", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "BUILD_TESTING": false, "KUBBE_ENABLE_ASSERTIONS": false, "KUBBE_SANITIZER": "none" } } ], "buildPresets": [ { "name": "dev", "configurePreset": "dev", "jobs": 4 }, { "name": "asan-ubsan", "configurePreset": "asan-ubsan", "jobs": 4 }, { "name": "tsan", "configurePreset": "tsan", "jobs": 4 }, { "name": "release", "configurePreset": "release", "jobs": 4 } ], "testPresets": [ { "name": "dev", "configurePreset": "dev", "output": { "outputOnFailure": true } }, { "name": "asan-ubsan", "configurePreset": "asan-ubsan", "environment": { "ASAN_OPTIONS": "detect_leaks=1:halt_on_error=1:strict_string_checks=1", "UBSAN_OPTIONS": "halt_on_error=1:print_stacktrace=1" }, "output": { "outputOnFailure": true } }, { "name": "tsan", "configurePreset": "tsan", "environment": { "TSAN_OPTIONS": "halt_on_error=1:second_deadlock_stack=1" }, "output": { "outputOnFailure": true } } ] }