This is a workaround for the deprecation of the cache v1 REST API that was replaced with a new protobuf RPC based API this month. vcpkg was using the private cache backend API without the knowledge of the GitHub actions team, and was thus broken by the deprecation. While we wait for Microsoft to talk to Microsoft to get this feature restored, we can use the raw actions/cache step to get almost the same cache behavior. The only difference is that the cache will be less fine grained than the per-package cache that VCPKG_BINARY_SOURCES of x-gha was giving us before.
270 lines
7.1 KiB
JSON
270 lines
7.1 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": "FIXME: Use the GitHub Actions vcpkg cache"
|
|
},
|
|
{
|
|
"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"
|
|
},
|
|
{
|
|
"name": "Fuzzers",
|
|
"inherits": "default",
|
|
"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": [
|
|
{
|
|
"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": "Distribution",
|
|
"configurePreset": "Distribution",
|
|
"displayName": "Build",
|
|
"description": "Build the project for distribution",
|
|
"targets": [
|
|
"all"
|
|
]
|
|
},
|
|
{
|
|
"name": "Debug",
|
|
"configurePreset": "Debug",
|
|
"displayName": "Build",
|
|
"description": "Build the project in debug",
|
|
"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"
|
|
},
|
|
{
|
|
"name": "Distribution",
|
|
"inherits": "default",
|
|
"configurePreset": "Distribution"
|
|
}
|
|
]
|
|
}
|