We currently build debug and release versions of vcpkg dependencies. We will most commonly only need the release version, so let's default to that to approximately halve our dependency build time.
126 lines
3.5 KiB
JSON
126 lines
3.5 KiB
JSON
{
|
|
"version": 6,
|
|
"cmakeMinimumRequired": {
|
|
"major": 3,
|
|
"minor": 25,
|
|
"patch": 0
|
|
},
|
|
"configurePresets": [
|
|
{
|
|
"name": "default",
|
|
"displayName": "Default Config",
|
|
"description": "Default build using Ninja generator",
|
|
"generator": "Ninja",
|
|
"binaryDir": "${sourceDir}/Build/ladybird",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "RelWithDebInfo",
|
|
"SERENITY_CACHE_DIR": "${sourceDir}/Build/caches",
|
|
"CMAKE_TOOLCHAIN_FILE": "${sourceDir}/Toolchain/Tarballs/vcpkg/scripts/buildsystems/vcpkg.cmake",
|
|
"VCPKG_INSTALL_OPTIONS": "--no-print-usage",
|
|
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/Meta/CMake/vcpkg/release-triplets"
|
|
},
|
|
"environment": {
|
|
"LADYBIRD_SOURCE_DIR": "${sourceDir}",
|
|
"VCPKG_ROOT": "${sourceDir}/Toolchain/Tarballs/vcpkg",
|
|
"VCPKG_BINARY_SOURCES": "clear;files,${sourceDir}/Toolchain/Build/vcpkg-binary-cache,readwrite"
|
|
},
|
|
"vendor": {
|
|
"jetbrains.com/clion": {
|
|
"toolchain": "Default"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"hidden": true,
|
|
"name": "vcpkg_ci",
|
|
"description": "Use the GitHub Actions vcpkg cache",
|
|
"environment": {
|
|
"VCPKG_BINARY_SOURCES": "clear;x-gha,readwrite"
|
|
}
|
|
},
|
|
{
|
|
"name": "Sanitizer",
|
|
"inherits": "default",
|
|
"displayName": "Sanitizer Config",
|
|
"description": "Debug build using Sanitizers",
|
|
"binaryDir": "${sourceDir}/Build/ladybird-sanitizers",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "Debug",
|
|
"ENABLE_UNDEFINED_SANITIZER": "ON",
|
|
"ENABLE_ADDRESS_SANITIZER": "ON",
|
|
"VCPKG_OVERLAY_TRIPLETS": "${sourceDir}/Meta/CMake/vcpkg/sanitizer-triplets"
|
|
}
|
|
},
|
|
{
|
|
"name": "CI",
|
|
"inherits": ["vcpkg_ci", "default" ],
|
|
"displayName": "Non-Sanitizer CI Config"
|
|
},
|
|
{
|
|
"name": "Sanitizer_CI",
|
|
"inherits": ["vcpkg_ci", "Sanitizer" ],
|
|
"displayName": "Sanitizer CI Config",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": ""
|
|
}
|
|
},
|
|
{
|
|
"name": "Fuzzers_CI",
|
|
"inherits": ["vcpkg_ci", "default" ],
|
|
"displayName": "Fuzzers Config",
|
|
"description": "Fuzzers build with GitHub Actions cache",
|
|
"binaryDir": "${sourceDir}/Build/ladybird-fuzzers",
|
|
"cacheVariables": {
|
|
"CMAKE_BUILD_TYPE": "",
|
|
"ENABLE_QT": "OFF",
|
|
"ENABLE_FUZZERS_LIBFUZZER": "ON",
|
|
"ENABLE_ADDRESS_SANITIZER": "ON"
|
|
}
|
|
}
|
|
],
|
|
"buildPresets": [
|
|
{
|
|
"name": "default",
|
|
"configurePreset": "default",
|
|
"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": "${sourceDir}"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"UBSAN_OPTIONS": "print_stacktrace=1:print_summary=1:halt_on_error=1"
|
|
}
|
|
}
|
|
]
|
|
}
|