Files
cpp-project-template/CMakePresets.json
T

156 lines
4.3 KiB
JSON

{
"version": 2,
"cmakeMinimumRequired": {
"major": 3,
"minor": 20,
"patch": 0
},
"configurePresets": [
{
"name": "_base",
"hidden": true,
"generator": "Ninja",
"cacheVariables": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
},
{
"name": "debug",
"displayName": "Debug",
"description": "Default developer lane. C++14 Debug with tests and benchmarks enabled, no sanitizers.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_STANDARD": "14",
"CPP_TEMPLATE_ENABLE_TESTS": "ON",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "ON",
"CPP_TEMPLATE_FUZZ_LANE": "OFF"
}
},
{
"name": "release",
"displayName": "Release",
"description": "Optimized build lane. C++14 Release with tests and benchmarks enabled.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_CXX_STANDARD": "14",
"CPP_TEMPLATE_ENABLE_TESTS": "ON",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "ON",
"CPP_TEMPLATE_FUZZ_LANE": "OFF"
}
},
{
"name": "asan",
"displayName": "AddressSanitizer",
"description": "ASan validation lane. C++14 Debug with AddressSanitizer, tests enabled, benchmarks/fuzz disabled.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/asan",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_STANDARD": "14",
"CMAKE_CXX_FLAGS": "-fsanitize=address -fno-omit-frame-pointer",
"CMAKE_EXE_LINKER_FLAGS": "-fsanitize=address",
"CPP_TEMPLATE_ENABLE_TESTS": "ON",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "OFF",
"CPP_TEMPLATE_FUZZ_LANE": "OFF"
}
},
{
"name": "tsan",
"displayName": "ThreadSanitizer",
"description": "TSan validation lane. C++14 Debug with ThreadSanitizer, tests enabled, benchmarks/fuzz disabled.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/tsan",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_STANDARD": "14",
"CMAKE_C_FLAGS": "-fsanitize=thread -fno-omit-frame-pointer -fno-PIE",
"CMAKE_CXX_FLAGS": "-fsanitize=thread -fno-omit-frame-pointer -fno-PIE",
"CMAKE_EXE_LINKER_FLAGS": "-fsanitize=thread -no-pie",
"CPP_TEMPLATE_ENABLE_TESTS": "ON",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "OFF",
"CPP_TEMPLATE_FUZZ_LANE": "OFF"
}
},
{
"name": "fuzz",
"displayName": "Fuzz",
"description": "FuzzTest development lane. C++17 Debug with fuzz lane enabled. Requires Clang compiler.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/fuzz",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_STANDARD": "17",
"CPP_TEMPLATE_ENABLE_TESTS": "OFF",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "OFF",
"CPP_TEMPLATE_FUZZ_LANE": "ON"
}
},
{
"name": "cxx11-smoke",
"displayName": "C++11 Smoke",
"description": "C++11 compatibility smoke. Configure/build only; tests, benchmarks, and fuzz disabled.",
"inherits": "_base",
"binaryDir": "${sourceDir}/build/cxx11-smoke",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_CXX_STANDARD": "11",
"CPP_TEMPLATE_ENABLE_TESTS": "OFF",
"CPP_TEMPLATE_ENABLE_BENCHMARKS": "OFF",
"CPP_TEMPLATE_FUZZ_LANE": "OFF"
}
}
],
"buildPresets": [
{
"name": "debug",
"configurePreset": "debug"
},
{
"name": "release",
"configurePreset": "release"
},
{
"name": "asan",
"configurePreset": "asan"
},
{
"name": "tsan",
"configurePreset": "tsan"
},
{
"name": "fuzz",
"configurePreset": "fuzz"
},
{
"name": "cxx11-smoke",
"configurePreset": "cxx11-smoke"
}
],
"testPresets": [
{
"name": "debug",
"configurePreset": "debug"
},
{
"name": "release",
"configurePreset": "release"
},
{
"name": "asan",
"configurePreset": "asan"
},
{
"name": "tsan",
"configurePreset": "tsan"
},
{
"name": "fuzz",
"configurePreset": "fuzz"
}
]
}