CMakePresets.json
Rama main · réplica de lectura del repositorio original.
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "ninja-multi-vcpkg",
"displayName": "Ninja Multi-Config",
"description": "Configure with vcpkg toolchain and generate Ninja project files for all configurations",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
}
}
},
{
"name": "ninja-multi-vcpkg-lld",
"displayName": "Ninja Multi-Config using lld",
"description": "Configure with vcpkg toolchain, without DuckDB, and generate Ninja project files for all configurations",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"CMAKE_EXE_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld"
},
"CMAKE_SHARED_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld"
},
"HS5_WITH_DUCKDB": {
"type": "BOOL",
"value": "OFF"
}
}
},
{
"name": "ninja-multi-vcpkg-asan",
"displayName": "Ninja Multi-Config with AddressSanitizer and UndefinedBehaviorSanitizer",
"description": "Configure with vcpkg toolchain, generate Ninja project files, and enable AddressSanitizer and UndefinedBehaviorSanitizer",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"CMAKE_CXX_FLAGS": {
"type": "STRING",
"value": "-fsanitize=address,undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer -g"
},
"CMAKE_C_FLAGS": {
"type": "STRING",
"value": "-fsanitize=address,undefined -fno-sanitize-recover=undefined -fno-omit-frame-pointer -g"
},
"CMAKE_EXE_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld -fsanitize=address,undefined"
},
"CMAKE_SHARED_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld -fsanitize=address,undefined"
},
"HS5_USE_JEMALLOC": {
"type": "BOOL",
"value": "OFF"
}
}
},
{
"name": "ninja-multi-vcpkg-tsan",
"displayName": "Ninja Multi-Config with ThreadSanitizer",
"description": "Configure with vcpkg toolchain using the x64-linux-tsan triplet (dependencies also instrumented), without DuckDB, generate Ninja project files, and enable ThreadSanitizer",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-linux-tsan"
},
"HS5_USE_JEMALLOC": {
"type": "BOOL",
"value": "OFF"
},
"CMAKE_CXX_FLAGS": {
"type": "STRING",
"value": "-fsanitize=thread -fno-omit-frame-pointer -g"
},
"CMAKE_C_FLAGS": {
"type": "STRING",
"value": "-fsanitize=thread -fno-omit-frame-pointer -g"
},
"CMAKE_EXE_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld -fsanitize=thread"
},
"CMAKE_SHARED_LINKER_FLAGS": {
"type": "STRING",
"value": "-fuse-ld=lld -fsanitize=thread"
},
"HS5_WITH_DUCKDB": {
"type": "BOOL",
"value": "OFF"
}
}
},
{
"name": "ninja-multi-vcpkg-zig-static",
"displayName": "Ninja Multi-Config, static build with zig (x64)",
"description": "Configure with vcpkg toolchain using the x64-linux-zig-static triplet and build a fully static binary with zig c++ against musl",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/cmake/zig-toolchain.cmake"
},
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "x64-linux-zig-static"
}
}
},
{
"name": "ninja-multi-vcpkg-zig-static-arm64",
"displayName": "Ninja Multi-Config, static build with zig (arm64)",
"description": "Configure with vcpkg toolchain using the arm64-linux-zig-static triplet and build a fully static binary with zig c++ against musl",
"binaryDir": "${sourceDir}/builds/${presetName}",
"generator": "Ninja Multi-Config",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/vcpkg/scripts/buildsystems/vcpkg.cmake"
},
"VCPKG_CHAINLOAD_TOOLCHAIN_FILE": {
"type": "FILEPATH",
"value": "${sourceDir}/cmake/zig-toolchain.cmake"
},
"VCPKG_TARGET_TRIPLET": {
"type": "STRING",
"value": "arm64-linux-zig-static"
}
}
}
],
"buildPresets": [
{
"name": "ninja-vcpkg-debug",
"configurePreset": "ninja-multi-vcpkg",
"displayName": "Build (Debug)",
"description": "Build with Ninja/vcpkg (Debug)",
"configuration": "Debug"
},
{
"name": "ninja-vcpkg-debug-lld",
"configurePreset": "ninja-multi-vcpkg-lld",
"displayName": "Build (Debug) with lld",
"description": "Build with Ninja/vcpkg (Debug with lld)",
"configuration": "Debug"
},
{
"name": "ninja-vcpkg-release",
"configurePreset": "ninja-multi-vcpkg",
"displayName": "Build (Release)",
"description": "Build with Ninja/vcpkg (Release)",
"configuration": "Release"
},
{
"name": "ninja-vcpkg-release-with-debug-info",
"configurePreset": "ninja-multi-vcpkg",
"displayName": "Build (Release)",
"description": "Build with Ninja/vcpkg (Release with debug info)",
"configuration": "RelWithDebInfo"
},
{
"name": "ninja-vcpkg",
"configurePreset": "ninja-multi-vcpkg",
"displayName": "Build",
"description": "Build with Ninja/vcpkg"
},
{
"name": "ninja-vcpkg-debug-asan",
"configurePreset": "ninja-multi-vcpkg-asan",
"displayName": "Build (Debug with ASAN)",
"description": "Build with Ninja/vcpkg (Debug with AddressSanitizer)",
"configuration": "Debug"
},
{
"name": "ninja-vcpkg-release-asan",
"configurePreset": "ninja-multi-vcpkg-asan",
"displayName": "Build (Release with ASAN)",
"description": "Build with Ninja/vcpkg (Release with AddressSanitizer)",
"configuration": "Release"
},
{
"name": "ninja-vcpkg-relwithdebinfo-tsan",
"configurePreset": "ninja-multi-vcpkg-tsan",
"displayName": "Build (Release with debug info with TSAN)",
"description": "Build with Ninja/vcpkg (Release with debug info with ThreadSanitizer)",
"configuration": "RelWithDebInfo"
},
{
"name": "ninja-vcpkg-release-zig-static",
"configurePreset": "ninja-multi-vcpkg-zig-static",
"displayName": "Build (Release, static with zig)",
"description": "Build with Ninja/vcpkg (Release, fully static with zig c++)",
"configuration": "Release"
},
{
"name": "ninja-vcpkg-release-zig-static-arm64",
"configurePreset": "ninja-multi-vcpkg-zig-static-arm64",
"displayName": "Build (Release, static with zig arm64)",
"description": "Build with Ninja/vcpkg (Release, fully static with zig c++)",
"configuration": "Release"
}
],
"testPresets": [
{
"name": "test-ninja-vcpkg",
"configurePreset": "ninja-multi-vcpkg",
"hidden": true
},
{
"name": "test-debug",
"description": "Test (Debug)",
"displayName": "Test (Debug)",
"configuration": "Debug",
"inherits": [
"test-ninja-vcpkg"
]
},
{
"name": "test-release",
"description": "Test (Release)",
"displayName": "Test (Release)",
"configuration": "Release",
"inherits": [
"test-ninja-vcpkg"
]
},
{
"name": "test-ninja-vcpkg-asan",
"configurePreset": "ninja-multi-vcpkg-asan",
"hidden": true
},
{
"name": "test-debug-asan",
"description": "Test (Debug with ASAN)",
"displayName": "Test (Debug with ASAN)",
"configuration": "Debug",
"inherits": [
"test-ninja-vcpkg-asan"
]
},
{
"name": "test-ninja-vcpkg-tsan",
"configurePreset": "ninja-multi-vcpkg-tsan",
"hidden": true
},
{
"name": "test-relwithdebinfo-tsan",
"description": "Test (Release with debug info with TSAN)",
"displayName": "Test (Release with debug info with TSAN)",
"configuration": "RelWithDebInfo",
"inherits": [
"test-ninja-vcpkg-tsan"
]
}
]
}