Meta: Refactor the way the GUI framework is picked

This is largely based of off the work done by Andrew Kaster in #5918.
Having this toggle makes much more sense, especially if there will be
more UIs in the future.

Co-authored-by: Andrew Kaster <andrew@ladybird.org>
This commit is contained in:
Undefine
2026-03-27 21:03:22 +01:00
committed by Andrew Kaster
parent 4eda70a4f1
commit fbbcc73fea
Notes: github-actions[bot] 2026-03-29 20:01:42 +00:00
8 changed files with 23 additions and 28 deletions

View File

@@ -0,0 +1,17 @@
if (ANDROID OR VCPKG_TARGET_ANDROID)
set(_possible_guis "Android")
set(_default_gui "Android")
elseif (APPLE)
set(_possible_guis "AppKit" "Qt")
set(_default_gui "AppKit")
else()
set(_possible_guis "Qt")
set(_default_gui "Qt")
endif()
# Note: ladybird_option() doesn't play nicely with this variable, so we use set() directly.
set(LADYBIRD_GUI_FRAMEWORK ${_default_gui} CACHE STRING "The GUI framework to use for the ladybird application. Possible values: ${_possible_guis}")
if (NOT "${LADYBIRD_GUI_FRAMEWORK}" IN_LIST _possible_guis)
message(FATAL_ERROR "Invalid value for LADYBIRD_GUI_FRAMEWORK: ${LADYBIRD_GUI_FRAMEWORK}. Possible values: ${_possible_guis}")
endif()