ladybird/CMakePresets.json
Andrew Kaster 673537b26b CMake: Rename our triplets to their canonical names
Becuase we're using dynamic libraries, our configuration is
classified as a "community triplet". To not confuse vcpkg
maintainers when developers create bug reports, name them
properly. This means that the default triplet detection is now
kind of useless, so we have to invent our own for these triplets.
2024-12-22 15:48:30 -07:00

254 lines
6.8 KiB
JSON

{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 25,
"patch": 0
},
"configurePresets": [
{
"hidden": true,
"name": "default_base",
"displayName": "Default Config",
"binaryDir": "${fileDir}/Build/release",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
"SERENITY_CACHE_DIR": "${fileDir}/Build/caches",
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"VCPKG_INSTALL_OPTIONS": "--no-print-usage",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/release-triplets"
},
"environment": {
"LADYBIRD_SOURCE_DIR": "${fileDir}",
"VCPKG_ROOT": "${fileDir}/Build/vcpkg",
"VCPKG_BINARY_SOURCES": "clear;files,${fileDir}/Build/caches/vcpkg-binary-cache,readwrite;$penv{VCPKG_BINARY_SOURCES}"
},
"vendor": {
"jetbrains.com/clion": {
"toolchain": "Default"
}
}
},
{
"hidden": true,
"name": "windows",
"description": "Visual Studio IDE config (experimental)",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"ENABLE_QT": "OFF"
},
"vendor": {
"microsoft.com/VisualStudioSettings/CMake/1.0": {
"intelliSenseMode": "windows-clang-x64"
}
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "default",
"description": "Default build using Ninja generator",
"generator": "Ninja",
"inherits": "default_base",
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "windows_ninja",
"displayName": "Default with ClangCL and Ninja",
"description": "Windows build using Ninja generator (experimental)",
"inherits": [
"default_base",
"windows"
],
"generator": "Ninja",
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-cl",
"CMAKE_CXX_COMPILER": "clang-cl"
}
},
{
"name": "windows_msbuild",
"displayName": "Default with ClangCL and MSBuild",
"description": "Default build using Visual Studio generator (experimental)",
"inherits": [
"default_base",
"windows"
],
"generator": "Visual Studio 17 2022",
"toolset": "ClangCL"
},
{
"name": "Distribution",
"inherits": "default",
"displayName": "Distribution Config",
"description": "Distribution build with static libraries using Ninja generator",
"binaryDir": "${fileDir}/Build/distribution",
"cacheVariables": {
"BUILD_SHARED_LIBS": "OFF",
"CMAKE_BUILD_TYPE": "Release",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/distribution-triplets"
}
},
{
"name": "Debug",
"inherits": "default",
"displayName": "Debug Config",
"description": "Debug build using Ninja generator",
"binaryDir": "${fileDir}/Build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/debug-triplets"
}
},
{
"name": "Sanitizer",
"inherits": "default",
"displayName": "Sanitizer Config",
"description": "Sanitizer build using Ninja generator",
"binaryDir": "${fileDir}/Build/sanitizers",
"cacheVariables": {
"ENABLE_UNDEFINED_SANITIZER": "ON",
"ENABLE_ADDRESS_SANITIZER": "ON",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/sanitizer-triplets"
}
},
{
"hidden": true,
"name": "vcpkg_ci",
"description": "Use the GitHub Actions vcpkg cache",
"environment": {
"VCPKG_BINARY_SOURCES": "clear;x-gha,readwrite"
}
},
{
"name": "CI",
"inherits": [
"vcpkg_ci",
"default"
],
"displayName": "Non-Sanitizer CI Config"
},
{
"name": "Distribution_CI",
"inherits": [
"vcpkg_ci",
"Distribution"
],
"displayName": "Distribution CI Config",
"description": "Distribution build with GitHub Actions cache"
},
{
"name": "Sanitizer_CI",
"inherits": [
"vcpkg_ci",
"Sanitizer"
],
"displayName": "Sanitizer CI Config",
"cacheVariables": {
"CMAKE_BUILD_TYPE": ""
}
},
{
"name": "Fuzzers",
"inherits": "default",
"displayName": "Fuzzers Config",
"description": "Fuzzers build",
"binaryDir": "${fileDir}/Build/fuzzers",
"cacheVariables": {
"BUILD_SHARED_LIBS": "OFF",
"CMAKE_BUILD_TYPE": "",
"ENABLE_QT": "OFF",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/distribution-triplets",
"ENABLE_FUZZERS_LIBFUZZER": "ON",
"ENABLE_ADDRESS_SANITIZER": "ON"
}
},
{
"name": "Fuzzers_CI",
"inherits": [
"vcpkg_ci",
"Fuzzers"
],
"displayName": "Fuzzers CI Config",
"description": "Fuzzers build with GitHub Actions cache"
}
],
"buildPresets": [
{
"name": "default",
"configurePreset": "default",
"displayName": "Build",
"description": "Build the project",
"targets": [
"all"
]
},
{
"name": "windows_msbuild",
"configurePreset": "windows_msbuild",
"displayName": "Build",
"description": "Build the project",
"targets": [
"ALL_BUILD"
]
},
{
"name": "windows_ninja",
"configurePreset": "windows_ninja",
"displayName": "Build",
"description": "Build the project",
"targets": [
"all"
]
},
{
"name": "Sanitizer",
"configurePreset": "Sanitizer",
"displayName": "Build with Sanitizers",
"description": "Build the project with Sanitizers",
"targets": [
"all"
]
}
],
"testPresets": [
{
"name": "default",
"configurePreset": "default",
"output": {
"outputOnFailure": true
},
"execution": {
"noTestsAction": "error",
"stopOnFailure": true
},
"environment": {
"LADYBIRD_SOURCE_DIR": "${fileDir}"
}
},
{
"name": "Sanitizer",
"inherits": "default",
"configurePreset": "Sanitizer",
"environment": {
"ASAN_OPTIONS": "strict_string_checks=1:check_initialization_order=1:strict_init_order=1:detect_stack_use_after_return=1:allocator_may_return_null=1:$penv{ASAN_OPTIONS}",
"UBSAN_OPTIONS": "print_stacktrace=1:print_summary=1:halt_on_error=1:$penv{UBSAN_OPTIONS}"
}
},
{
"name": "Debug",
"inherits": "default",
"configurePreset": "Debug"
}
]
}