{ "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" ] } ] }