From a11242f3debfaf500ec12ecf371633efca159511 Mon Sep 17 00:00:00 2001 From: ayeteadoe Date: Mon, 19 May 2025 16:15:25 -0700 Subject: [PATCH] CMake: Expose Windows CI utilities This will allow us to gradually build up official support for Windows, as only targets we have explicitly marked as supported on windows will be built and ran during CI. --- CMakePresets.json | 58 +++++++++++++++++++++++++++++---- Meta/CMake/common_options.cmake | 1 + 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index b53a27f180c..82cc1ddb4ef 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -38,11 +38,12 @@ "strategy": "external" }, "cacheVariables": { - "ENABLE_QT": "OFF" + "ENABLE_QT": "OFF", + "ENABLE_GUI_TARGETS": "OFF" }, "vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { - "intelliSenseMode": "windows-clang-x64" + "intelliSenseMode": "windows-clang-x64" } }, "condition": { @@ -51,6 +52,20 @@ "rhs": "Windows" } }, + { + "hidden": true, + "name": "windows_ci", + "cacheVariables": { + "ENABLE_WINDOWS_CI": "ON" + } + }, + { + "hidden": true, + "name": "windows_dev", + "cacheVariables": { + "ENABLE_WINDOWS_CI": "OFF" + } + }, { "name": "default", "description": "Default build using Ninja generator", @@ -62,10 +77,10 @@ "rhs": "Windows" } }, + { + "hidden": true, "name": "windows_ninja", - "displayName": "Default with ClangCL and Ninja", - "description": "Windows build using Ninja generator (experimental)", "inherits": [ "default_base", "windows" @@ -77,9 +92,28 @@ } }, { + "hidden": false, + "name": "windows_ci_ninja", + "displayName": "Windows Continuous Integration (ClangCL and Ninja)", + "description": "Windows continuous integration build using Ninja (experimental)", + "inherits": [ + "windows_ninja", + "windows_ci" + ] + }, + { + "hidden": false, + "name": "windows_dev_ninja", + "displayName": "Window Development (ClangCL and Ninja)", + "description": "Windows development build using Ninja (experimental)", + "inherits": [ + "windows_ninja", + "windows_dev" + ] + }, + { + "hidden": true, "name": "windows_msbuild", - "displayName": "Default with ClangCL and MSBuild", - "description": "Default build using Visual Studio generator (experimental)", "inherits": [ "default_base", "windows" @@ -87,6 +121,16 @@ "generator": "Visual Studio 17 2022", "toolset": "ClangCL" }, + { + "hidden": false, + "name": "windows_dev_msbuild", + "displayName": "Window Development (ClangCL and MSBuild)", + "description": "Windows development build using MSBuild (experimental)", + "inherits": [ + "windows_msbuild", + "windows_dev" + ] + }, { "name": "Distribution", "inherits": "default", @@ -219,7 +263,7 @@ "displayName": "Build", "description": "Build the project in debug", "targets": [ - "all" + "all" ] }, { diff --git a/Meta/CMake/common_options.cmake b/Meta/CMake/common_options.cmake index ccc5c6568db..ee1f2446aa5 100644 --- a/Meta/CMake/common_options.cmake +++ b/Meta/CMake/common_options.cmake @@ -39,6 +39,7 @@ serenity_option(ENABLE_GUI_TARGETS ON CACHE BOOL "Enable building GUI targets") serenity_option(ENABLE_INSTALL_HEADERS ON CACHE BOOL "Enable installing headers") serenity_option(ENABLE_SWIFT OFF CACHE BOOL "Enable building Swift files") serenity_option(ENABLE_STD_STACKTRACE OFF CACHE BOOL "Force use of std::stacktrace instead of libbacktrace. If it is not supported the build will fail") +serenity_option(ENABLE_WINDOWS_CI OFF CACHE BOOL "Enable building targets supported on Windows for CI") if (ENABLE_SWIFT) include(${CMAKE_CURRENT_LIST_DIR}/Swift/swift-settings.cmake)