mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-08-17 17:30:27 +03:00
This changes the Sanitizer configs to build all the vcpkg dependencies with our specified CFLAGS and CXXFLAGS for ASAN and UBSAN. Unfortunately, we can't yet enable actually compiling them with sanitizers enabled, because this causes test failures that need to be investigated.
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"
|
|
},
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|