Ctrl K
ComunidadGuías…

CMakePresets.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
    "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"
            ]
        }
    ]
}