ladybird/CMakePresets.json
ayeteadoe f2a10bda32 CMake: Simplify preset structure for Windows
As we now are only officially supporting the Ninja generator for
Windows, the old preset structure can now be simplified. Also, we
now follow the naming conventions of the non-hidden presets.
2025-06-10 11:29:29 -06:00

330 lines
8.6 KiB
JSON

{
"version": 6,
"cmakeMinimumRequired": {
"major": 3,
"minor": 25,
"patch": 0
},
"configurePresets": [
{
"hidden": true,
"name": "base",
"displayName": "Default Config",
"generator": "Ninja",
"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": "unix_base",
"inherits": "base",
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"hidden": true,
"name": "windows_base",
"inherits": "base",
"description": "Visual Studio via Clang/LLVM Toolchain",
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "clang-cl",
"CMAKE_CXX_COMPILER": "clang-cl",
"ENABLE_QT": "OFF",
"ENABLE_GUI_TARGETS": "OFF"
},
"vendor": {
"microsoft.com/VisualStudioSettings/CMake/1.0": {
"intelliSenseMode": "windows-clang-x64"
}
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "Release",
"inherits": "unix_base",
"displayName": "Release Config"
},
{
"name": "Debug",
"inherits": "unix_base",
"displayName": "Debug Config",
"binaryDir": "${fileDir}/Build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/debug-triplets"
}
},
{
"name": "Windows_Experimental",
"inherits": "windows_base",
"displayName": "Windows Experimental Config",
"description": "Experimental windows configuration that builds all targets, allowing for gradual increase in support",
"binaryDir": "${fileDir}/Build/debug",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/debug-triplets",
"ENABLE_WINDOWS_CI": "OFF"
}
},
{
"name": "Distribution",
"inherits": "unix_base",
"displayName": "Distribution Config",
"description": "Distribution build with static libraries",
"binaryDir": "${fileDir}/Build/distribution",
"cacheVariables": {
"BUILD_SHARED_LIBS": "OFF",
"CMAKE_BUILD_TYPE": "Release",
"VCPKG_OVERLAY_TRIPLETS": "${fileDir}/Meta/CMake/vcpkg/distribution-triplets"
}
},
{
"name": "Sanitizer",
"inherits": [
"unix_base",
"Release"
],
"displayName": "Sanitizer Config",
"description": "Sanitizer build",
"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": "FIXME: Use the GitHub Actions vcpkg cache"
},
{
"name": "CI",
"displayName": "Non-Sanitizer CI Config",
"inherits": [
"vcpkg_ci",
"unix_base"
]
},
{
"name": "Windows_CI",
"inherits": "windows_base",
"displayName": "Windows CI Config",
"cacheVariables": {
"ENABLE_WINDOWS_CI": "ON"
}
},
{
"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"
},
{
"name": "Fuzzers",
"inherits": "unix_base",
"displayName": "Fuzzers Config",
"description": "Fuzzers build",
"binaryDir": "${fileDir}/Build/fuzzers",
"cacheVariables": {
"BUILD_SHARED_LIBS": "OFF",
"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": [
{
"hidden": true,
"name": "base",
"targets": [
"all"
]
},
{
"hidden": true,
"name": "unix_base",
"inherits": "base",
"configurePreset": "unix_base",
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"hidden": true,
"name": "windows_base",
"inherits": "base",
"configurePreset": "windows_base",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "Release",
"inherits": "unix_base",
"configurePreset": "Release",
"displayName": "Build",
"description": "Build the project in release"
},
{
"name": "Debug",
"inherits": "unix_base",
"configurePreset": "Debug",
"displayName": "Build",
"description": "Build the project in debug"
},
{
"name": "Windows_Experimental",
"inherits": "windows_base",
"configurePreset": "Windows_Experimental",
"displayName": "Build",
"description": "Build the project"
},
{
"name": "Distribution",
"inherits": "unix_base",
"configurePreset": "Distribution",
"displayName": "Build",
"description": "Build the project for distribution"
},
{
"name": "Sanitizer",
"inherits": "unix_base",
"configurePreset": "Sanitizer",
"displayName": "Build with Sanitizers",
"description": "Build the project with Sanitizers"
},
{
"name": "Windows_CI",
"inherits": "windows_base",
"configurePreset": "Windows_CI",
"displayName": "Build",
"description": "Build the project"
}
],
"testPresets": [
{
"hidden": true,
"name": "base",
"output": {
"outputOnFailure": true
},
"execution": {
"noTestsAction": "error",
"stopOnFailure": true
},
"environment": {
"LADYBIRD_SOURCE_DIR": "${fileDir}"
}
},
{
"hidden": true,
"name": "windows_base",
"configurePreset": "windows_base",
"inherits": "base",
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"hidden": true,
"name": "unix_base",
"configurePreset": "unix_base",
"inherits": "base",
"condition": {
"type": "notEquals",
"lhs": "${hostSystemName}",
"rhs": "Windows"
}
},
{
"name": "Release",
"inherits": "unix_base",
"configurePreset": "Release"
},
{
"name": "Debug",
"inherits": "unix_base",
"configurePreset": "Debug"
},
{
"name": "Windows_Experimental",
"inherits": "windows_base",
"configurePreset": "Windows_Experimental"
},
{
"name": "Distribution",
"inherits": "unix_base",
"configurePreset": "Distribution"
},
{
"name": "Sanitizer",
"inherits": "unix_base",
"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": "Windows_CI",
"inherits": "windows_base",
"configurePreset": "Windows_CI"
}
]
}