{ "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}/Toolchain/Tarballs/vcpkg", "VCPKG_BINARY_SOURCES": "clear;files,${fileDir}/Toolchain/Build/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": "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": "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": "${fileDir}/Build/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": "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", "UBSAN_OPTIONS": "print_stacktrace=1:print_summary=1:halt_on_error=1" } }, { "name": "Debug", "inherits": "default", "configurePreset": "Debug" } ] }