CMake 3.25+, C++20, avertissements stricts, règles de déterminisme (pas de fast-math ni de contraction FMA), sanitizers et clang-tidy optionnels, doctest. Presets Windows/Linux/macOS, scripts build.ps1, build.sh et check.ps1 (pas de CI serveur). README de core, 3d et schema.
96 lines
3.8 KiB
JSON
96 lines
3.8 KiB
JSON
{
|
|
"version": 6,
|
|
"cmakeMinimumRequired": { "major": 3, "minor": 25, "patch": 0 },
|
|
"configurePresets": [
|
|
{
|
|
"name": "base",
|
|
"hidden": true,
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/build/${presetName}",
|
|
"cacheVariables": {
|
|
"SEQUA_BUILD_TESTS": "ON",
|
|
"SEQUA_WARNINGS_AS_ERRORS": "ON"
|
|
}
|
|
},
|
|
{
|
|
"name": "windows-base",
|
|
"hidden": true,
|
|
"inherits": "base",
|
|
"cacheVariables": { "CMAKE_CXX_COMPILER": "cl" },
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Windows" }
|
|
},
|
|
{
|
|
"name": "windows-msvc-debug",
|
|
"displayName": "Windows MSVC Debug",
|
|
"inherits": "windows-base",
|
|
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug" }
|
|
},
|
|
{
|
|
"name": "windows-msvc-release",
|
|
"displayName": "Windows MSVC Release",
|
|
"inherits": "windows-base",
|
|
"cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" }
|
|
},
|
|
{
|
|
"name": "windows-msvc-asan",
|
|
"displayName": "Windows MSVC AddressSanitizer",
|
|
"inherits": "windows-base",
|
|
"cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "SEQUA_SANITIZERS": "address" }
|
|
},
|
|
{
|
|
"name": "windows-msvc-prototypes",
|
|
"displayName": "Windows MSVC Release + prototypes",
|
|
"inherits": "windows-msvc-release",
|
|
"cacheVariables": { "SEQUA_BUILD_PROTOTYPES": "ON" }
|
|
},
|
|
{
|
|
"name": "linux-base",
|
|
"hidden": true,
|
|
"inherits": "base",
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" }
|
|
},
|
|
{
|
|
"name": "linux-gcc-debug",
|
|
"displayName": "Linux GCC Debug",
|
|
"inherits": "linux-base",
|
|
"cacheVariables": { "CMAKE_CXX_COMPILER": "g++", "CMAKE_BUILD_TYPE": "Debug" }
|
|
},
|
|
{
|
|
"name": "linux-clang-sanitize",
|
|
"displayName": "Linux Clang ASan + UBSan",
|
|
"inherits": "linux-base",
|
|
"cacheVariables": {
|
|
"CMAKE_CXX_COMPILER": "clang++",
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"SEQUA_SANITIZERS": "address;undefined"
|
|
}
|
|
},
|
|
{
|
|
"name": "macos-clang-debug",
|
|
"displayName": "macOS Clang Debug",
|
|
"inherits": "base",
|
|
"cacheVariables": { "CMAKE_CXX_COMPILER": "clang++", "CMAKE_BUILD_TYPE": "Debug" },
|
|
"condition": { "type": "equals", "lhs": "${hostSystemName}", "rhs": "Darwin" }
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{ "name": "windows-msvc-debug", "configurePreset": "windows-msvc-debug" },
|
|
{ "name": "windows-msvc-release", "configurePreset": "windows-msvc-release" },
|
|
{ "name": "windows-msvc-asan", "configurePreset": "windows-msvc-asan" },
|
|
{ "name": "windows-msvc-prototypes", "configurePreset": "windows-msvc-prototypes" },
|
|
{ "name": "linux-gcc-debug", "configurePreset": "linux-gcc-debug" },
|
|
{ "name": "linux-clang-sanitize", "configurePreset": "linux-clang-sanitize" },
|
|
{ "name": "macos-clang-debug", "configurePreset": "macos-clang-debug" }
|
|
],
|
|
"testPresets": [
|
|
{ "name": "test-base", "hidden": true, "output": { "outputOnFailure": true }, "execution": { "noTestsAction": "error" } },
|
|
{ "name": "windows-msvc-debug", "inherits": "test-base", "configurePreset": "windows-msvc-debug" },
|
|
{ "name": "windows-msvc-release", "inherits": "test-base", "configurePreset": "windows-msvc-release" },
|
|
{ "name": "windows-msvc-asan", "inherits": "test-base", "configurePreset": "windows-msvc-asan" },
|
|
{ "name": "windows-msvc-prototypes", "inherits": "test-base", "configurePreset": "windows-msvc-prototypes" },
|
|
{ "name": "linux-gcc-debug", "inherits": "test-base", "configurePreset": "linux-gcc-debug" },
|
|
{ "name": "linux-clang-sanitize", "inherits": "test-base", "configurePreset": "linux-clang-sanitize" },
|
|
{ "name": "macos-clang-debug", "inherits": "test-base", "configurePreset": "macos-clang-debug" }
|
|
]
|
|
}
|