156 lines
4.3 KiB
JSON
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"
|
|
}
|
|
]
|
|
}
|