2023-08-08 04:14:22 +00:00
|
|
|
cmake_minimum_required(VERSION 3.23)
|
2022-07-04 11:45:18 +00:00
|
|
|
|
|
|
|
project(ladybird
|
|
|
|
VERSION 0.0.1
|
|
|
|
LANGUAGES CXX
|
|
|
|
DESCRIPTION "Ladybird Web Browser"
|
|
|
|
)
|
|
|
|
|
2022-09-16 10:08:24 +00:00
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
2024-02-27 13:32:29 +00:00
|
|
|
if (ANDROID OR IOS)
|
2022-07-11 07:14:53 +00:00
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
endif()
|
|
|
|
|
2024-04-25 17:20:57 +00:00
|
|
|
# FIXME: The rpath steps from lagom_install_rules.cmake do not produce a working binary
|
|
|
|
# in the build directory on macOS.
|
|
|
|
# We need to copy the libs into the build directory bundle as the install rules do.
|
2022-07-04 11:45:18 +00:00
|
|
|
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
|
|
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
|
|
|
# See slide 100 of the following ppt :^)
|
|
|
|
# https://crascit.com/wp-content/uploads/2019/09/Deep-CMake-For-Library-Authors-Craig-Scott-CppCon-2019.pdf
|
|
|
|
if (NOT APPLE)
|
2022-09-16 10:08:24 +00:00
|
|
|
set(CMAKE_INSTALL_RPATH $ORIGIN;$ORIGIN/../${CMAKE_INSTALL_LIBDIR})
|
2022-07-04 11:45:18 +00:00
|
|
|
endif()
|
|
|
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
|
|
|
|
2022-10-04 00:30:29 +00:00
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
|
2022-10-19 19:12:29 +00:00
|
|
|
if (ENABLE_ADDRESS_SANITIZER)
|
|
|
|
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
|
|
|
|
add_link_options(-fsanitize=address)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (ENABLE_MEMORY_SANITIZER)
|
|
|
|
add_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer)
|
|
|
|
add_link_options(-fsanitize=memory -fsanitize-memory-track-origins)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (ENABLE_UNDEFINED_SANITIZER)
|
|
|
|
add_compile_options(-fsanitize=undefined -fno-omit-frame-pointer)
|
2023-08-12 13:39:22 +00:00
|
|
|
if (UNDEFINED_BEHAVIOR_IS_FATAL)
|
|
|
|
add_compile_options(-fno-sanitize-recover=undefined)
|
|
|
|
endif()
|
2023-12-19 22:41:57 +00:00
|
|
|
if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17")
|
|
|
|
add_compile_options(-fno-sanitize=function)
|
|
|
|
endif()
|
2022-10-19 19:12:29 +00:00
|
|
|
add_link_options(-fsanitize=undefined)
|
|
|
|
endif()
|
|
|
|
|
2023-08-27 18:53:47 +00:00
|
|
|
if (HAIKU)
|
|
|
|
# Haiku needs some extra compile definitions to make important stuff in its headers available.
|
|
|
|
add_compile_definitions(_DEFAULT_SOURCE)
|
|
|
|
add_compile_definitions(_GNU_SOURCE)
|
|
|
|
add_compile_definitions(__USE_GNU)
|
|
|
|
endif()
|
|
|
|
|
2022-07-04 11:45:18 +00:00
|
|
|
# Lagom
|
2022-12-23 18:36:02 +00:00
|
|
|
set(LADYBIRD_CUSTOM_TARGET_SUFFIX "-ladybird")
|
2024-04-25 17:30:44 +00:00
|
|
|
if (PROJECT_IS_TOP_LEVEL)
|
2022-12-23 18:36:02 +00:00
|
|
|
set(LADYBIRD_CUSTOM_TARGET_SUFFIX "")
|
|
|
|
endif()
|
2022-07-04 11:45:18 +00:00
|
|
|
|
2024-04-25 17:30:44 +00:00
|
|
|
if (PROJECT_IS_TOP_LEVEL)
|
2022-12-23 18:36:02 +00:00
|
|
|
get_filename_component(
|
|
|
|
SERENITY_SOURCE_DIR "${ladybird_SOURCE_DIR}/.."
|
|
|
|
ABSOLUTE
|
|
|
|
)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${SERENITY_SOURCE_DIR}/Meta/CMake")
|
|
|
|
include(cmake/EnableLagom.cmake)
|
2023-09-05 18:57:20 +00:00
|
|
|
include(use_linker)
|
2023-08-14 01:49:21 +00:00
|
|
|
include(lagom_compile_options)
|
|
|
|
include(lagom_install_options)
|
2022-12-23 18:36:02 +00:00
|
|
|
else()
|
|
|
|
# FIXME: Use SERENITY_SOURCE_DIR in Lagom/CMakeLists.txt
|
|
|
|
set(SERENITY_SOURCE_DIR "${SERENITY_PROJECT_ROOT}")
|
|
|
|
endif()
|
2022-07-11 07:14:53 +00:00
|
|
|
|
2023-04-24 11:16:37 +00:00
|
|
|
add_compile_options(-DAK_DONT_REPLACE_STD)
|
2022-07-04 11:45:18 +00:00
|
|
|
add_compile_options(-Wno-expansion-to-defined)
|
2022-07-13 19:33:22 +00:00
|
|
|
add_compile_options(-Wno-user-defined-literals)
|
2022-07-04 11:45:18 +00:00
|
|
|
|
2023-10-24 14:35:33 +00:00
|
|
|
if (ANDROID OR APPLE)
|
|
|
|
serenity_option(ENABLE_QT OFF CACHE BOOL "Build ladybird application using Qt GUI")
|
|
|
|
else()
|
|
|
|
serenity_option(ENABLE_QT ON CACHE BOOL "Build ladybird application using Qt GUI")
|
|
|
|
endif()
|
|
|
|
|
2023-09-02 15:30:21 +00:00
|
|
|
if (ANDROID AND ENABLE_QT)
|
|
|
|
message(STATUS "Disabling Qt for Android")
|
|
|
|
set(ENABLE_QT OFF CACHE BOOL "" FORCE)
|
|
|
|
endif()
|
2023-08-08 01:42:06 +00:00
|
|
|
|
|
|
|
if (ENABLE_QT)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
set(CMAKE_AUTORCC ON)
|
|
|
|
set(CMAKE_AUTOUIC ON)
|
2023-11-02 17:53:38 +00:00
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Widgets Network)
|
2023-08-08 01:42:06 +00:00
|
|
|
endif()
|
2022-07-04 11:45:18 +00:00
|
|
|
|
|
|
|
set(SOURCES
|
2023-02-02 10:00:30 +00:00
|
|
|
HelperProcess.cpp
|
2022-09-19 09:06:23 +00:00
|
|
|
Utilities.cpp
|
2022-07-04 11:45:18 +00:00
|
|
|
)
|
2023-08-08 04:14:22 +00:00
|
|
|
set(LADYBIRD_HEADERS
|
|
|
|
HelperProcess.h
|
|
|
|
Types.h
|
|
|
|
Utilities.h
|
|
|
|
)
|
2022-07-04 11:45:18 +00:00
|
|
|
|
2023-08-08 01:42:06 +00:00
|
|
|
if (ENABLE_QT)
|
|
|
|
qt_add_executable(ladybird ${SOURCES})
|
|
|
|
target_sources(ladybird PRIVATE
|
2024-04-12 21:15:09 +00:00
|
|
|
Qt/Application.cpp
|
2023-05-31 01:44:16 +00:00
|
|
|
Qt/AutoComplete.cpp
|
2023-08-08 01:42:06 +00:00
|
|
|
Qt/BrowserWindow.cpp
|
|
|
|
Qt/EventLoopImplementationQt.cpp
|
|
|
|
Qt/EventLoopImplementationQtEventTarget.cpp
|
2023-11-05 12:45:43 +00:00
|
|
|
Qt/Icon.cpp
|
2023-08-08 01:42:06 +00:00
|
|
|
Qt/InspectorWidget.cpp
|
|
|
|
Qt/LocationEdit.cpp
|
|
|
|
Qt/Settings.cpp
|
|
|
|
Qt/SettingsDialog.cpp
|
|
|
|
Qt/Tab.cpp
|
2024-04-03 01:24:17 +00:00
|
|
|
Qt/TabBar.cpp
|
2024-03-26 17:38:12 +00:00
|
|
|
Qt/TaskManagerWindow.cpp
|
2023-08-08 01:42:06 +00:00
|
|
|
Qt/TVGIconEngine.cpp
|
|
|
|
Qt/StringUtils.cpp
|
|
|
|
Qt/WebContentView.cpp
|
|
|
|
Qt/ladybird.qrc
|
|
|
|
Qt/main.cpp
|
|
|
|
)
|
|
|
|
target_link_libraries(ladybird PRIVATE Qt::Core Qt::Gui Qt::Network Qt::Widgets)
|
2023-08-20 20:14:31 +00:00
|
|
|
elseif (APPLE)
|
|
|
|
add_executable(ladybird MACOSX_BUNDLE
|
|
|
|
${SOURCES}
|
|
|
|
AppKit/main.mm
|
|
|
|
AppKit/Application/Application.mm
|
2024-04-15 23:39:48 +00:00
|
|
|
AppKit/Application/ApplicationBridge.cpp
|
2023-08-20 20:14:31 +00:00
|
|
|
AppKit/Application/ApplicationDelegate.mm
|
|
|
|
AppKit/Application/EventLoopImplementation.mm
|
|
|
|
AppKit/UI/Event.mm
|
2023-09-13 18:55:34 +00:00
|
|
|
AppKit/UI/Inspector.mm
|
|
|
|
AppKit/UI/InspectorController.mm
|
2023-08-20 20:14:31 +00:00
|
|
|
AppKit/UI/LadybirdWebView.mm
|
|
|
|
AppKit/UI/LadybirdWebViewBridge.cpp
|
2023-08-27 03:12:30 +00:00
|
|
|
AppKit/UI/Palette.mm
|
2023-08-20 20:14:31 +00:00
|
|
|
AppKit/UI/Tab.mm
|
|
|
|
AppKit/UI/TabController.mm
|
2024-04-10 02:35:20 +00:00
|
|
|
AppKit/UI/TaskManager.mm
|
|
|
|
AppKit/UI/TaskManagerController.mm
|
2023-08-20 20:14:31 +00:00
|
|
|
AppKit/Utilities/Conversions.mm
|
|
|
|
)
|
|
|
|
target_include_directories(ladybird PRIVATE AppKit)
|
2024-03-15 02:45:28 +00:00
|
|
|
target_link_libraries(ladybird PRIVATE "-framework Cocoa -framework UniformTypeIdentifiers" LibUnicode)
|
2023-08-20 20:14:31 +00:00
|
|
|
target_compile_options(ladybird PRIVATE
|
|
|
|
-fobjc-arc
|
|
|
|
-Wno-deprecated-anon-enum-enum-conversion # Required for CGImageCreate
|
|
|
|
)
|
2023-09-02 15:30:21 +00:00
|
|
|
elseif(ANDROID)
|
|
|
|
add_library(ladybird SHARED
|
|
|
|
${SOURCES}
|
|
|
|
Android/src/main/cpp/LadybirdActivity.cpp
|
|
|
|
Android/src/main/cpp/WebViewImplementationNative.cpp
|
2023-09-15 18:35:20 +00:00
|
|
|
Android/src/main/cpp/WebViewImplementationNativeJNI.cpp
|
2023-09-09 04:12:42 +00:00
|
|
|
Android/src/main/cpp/ALooperEventLoopImplementation.cpp
|
|
|
|
Android/src/main/cpp/TimerExecutorService.cpp
|
2023-09-24 05:05:15 +00:00
|
|
|
Android/src/main/cpp/JNIHelpers.cpp
|
2023-09-02 15:30:21 +00:00
|
|
|
)
|
2023-09-15 18:35:20 +00:00
|
|
|
target_link_libraries(ladybird PRIVATE LibArchive jnigraphics android)
|
2023-08-08 01:42:06 +00:00
|
|
|
else()
|
|
|
|
# TODO: Check for other GUI frameworks here when we move them in-tree
|
|
|
|
# For now, we can export a static library of common files for chromes to link to
|
|
|
|
add_library(ladybird STATIC ${SOURCES})
|
|
|
|
endif()
|
2023-08-20 20:14:31 +00:00
|
|
|
|
2024-04-04 20:10:08 +00:00
|
|
|
if (APPLE)
|
|
|
|
target_sources(ladybird PRIVATE MachPortServer.cpp)
|
|
|
|
target_link_libraries(ladybird PRIVATE LibThreading)
|
|
|
|
endif()
|
|
|
|
|
2023-08-08 04:14:22 +00:00
|
|
|
target_sources(ladybird PUBLIC FILE_SET ladybird TYPE HEADERS
|
|
|
|
BASE_DIRS ${SERENITY_SOURCE_DIR}
|
|
|
|
FILES ${LADYBIRD_HEADERS}
|
|
|
|
)
|
2024-04-22 16:31:29 +00:00
|
|
|
target_link_libraries(ladybird PRIVATE AK LibCore LibFileSystem LibGfx LibImageDecoderClient LibIPC LibJS LibMain LibSQL LibWeb LibWebView LibProtocol LibURL)
|
2022-07-04 11:45:18 +00:00
|
|
|
|
2022-10-05 13:23:41 +00:00
|
|
|
target_include_directories(ladybird PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
2023-06-09 20:37:21 +00:00
|
|
|
target_include_directories(ladybird PRIVATE ${SERENITY_SOURCE_DIR}/Userland/)
|
2022-10-22 21:35:55 +00:00
|
|
|
target_include_directories(ladybird PRIVATE ${SERENITY_SOURCE_DIR}/Userland/Applications/)
|
2022-10-05 13:23:41 +00:00
|
|
|
target_include_directories(ladybird PRIVATE ${SERENITY_SOURCE_DIR}/Userland/Services/)
|
|
|
|
|
2024-02-24 00:02:17 +00:00
|
|
|
function(set_helper_process_properties)
|
|
|
|
set(targets ${ARGV})
|
2024-02-21 23:16:15 +00:00
|
|
|
if (APPLE)
|
|
|
|
# Store helper processes in the same bundle directory as the main application
|
2024-02-24 00:02:17 +00:00
|
|
|
set_target_properties(${targets} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "$<TARGET_FILE_DIR:ladybird>")
|
|
|
|
else()
|
2024-02-25 05:01:17 +00:00
|
|
|
set_target_properties(${targets} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${IN_BUILD_PREFIX}${CMAKE_INSTALL_LIBEXECDIR}")
|
2024-02-24 00:02:17 +00:00
|
|
|
|
|
|
|
if (NOT CMAKE_INSTALL_LIBEXECDIR STREQUAL "libexec")
|
|
|
|
set_source_files_properties(Utilities.cpp PROPERTIES COMPILE_DEFINITIONS LADYBIRD_LIBEXECDIR="${CMAKE_INSTALL_LIBEXECDIR}")
|
|
|
|
set_source_files_properties(Utilities.cpp TARGET_DIRECTORY ${targets} PROPERTIES COMPILE_DEFINITIONS LADYBIRD_LIBEXECDIR="${CMAKE_INSTALL_LIBEXECDIR}")
|
|
|
|
endif()
|
2024-02-21 23:16:15 +00:00
|
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
|
2023-08-05 16:42:26 +00:00
|
|
|
add_executable(headless-browser
|
2023-03-12 16:38:15 +00:00
|
|
|
${SERENITY_SOURCE_DIR}/Userland/Utilities/headless-browser.cpp
|
|
|
|
HelperProcess.cpp
|
|
|
|
Utilities.cpp)
|
|
|
|
|
|
|
|
target_include_directories(headless-browser PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
|
2024-03-07 00:10:16 +00:00
|
|
|
target_include_directories(headless-browser PRIVATE ${SERENITY_SOURCE_DIR}/Userland/)
|
2024-04-22 16:31:29 +00:00
|
|
|
target_link_libraries(headless-browser PRIVATE AK LibCore LibWeb LibWebView LibWebSocket LibCrypto LibFileSystem LibGemini LibHTTP LibImageDecoderClient LibJS LibGfx LibMain LibSQL LibTLS LibIPC LibDiff LibProtocol LibURL)
|
2023-03-12 16:38:15 +00:00
|
|
|
|
2022-07-11 07:14:53 +00:00
|
|
|
if (ANDROID)
|
|
|
|
include(cmake/AndroidExtras.cmake)
|
|
|
|
endif()
|
|
|
|
|
2022-12-23 18:36:02 +00:00
|
|
|
add_custom_target(run${LADYBIRD_CUSTOM_TARGET_SUFFIX}
|
2023-01-26 11:51:48 +00:00
|
|
|
COMMAND "${CMAKE_COMMAND}" -E env "SERENITY_SOURCE_DIR=${SERENITY_SOURCE_DIR}" "$<TARGET_FILE:ladybird>" $ENV{LAGOM_ARGS}
|
2022-07-04 11:45:18 +00:00
|
|
|
USES_TERMINAL
|
2023-01-26 11:51:48 +00:00
|
|
|
VERBATIM
|
2022-07-04 11:45:18 +00:00
|
|
|
)
|
|
|
|
|
2022-12-23 18:36:02 +00:00
|
|
|
add_custom_target(debug${LADYBIRD_CUSTOM_TARGET_SUFFIX}
|
2022-10-19 19:13:53 +00:00
|
|
|
COMMAND "${CMAKE_COMMAND}" -E env "SERENITY_SOURCE_DIR=${SERENITY_SOURCE_DIR}" gdb -ex "set follow-fork-mode child" "$<TARGET_FILE:ladybird>"
|
2022-07-04 11:45:18 +00:00
|
|
|
USES_TERMINAL
|
|
|
|
)
|
|
|
|
|
2023-09-08 10:30:50 +00:00
|
|
|
add_subdirectory(ImageDecoder)
|
|
|
|
add_subdirectory(RequestServer)
|
2022-12-05 18:09:42 +00:00
|
|
|
add_subdirectory(SQLServer)
|
2022-10-07 23:08:29 +00:00
|
|
|
add_subdirectory(WebContent)
|
2022-11-14 17:09:14 +00:00
|
|
|
add_subdirectory(WebDriver)
|
2023-11-08 18:47:41 +00:00
|
|
|
add_subdirectory(WebWorker)
|
2024-02-21 23:16:15 +00:00
|
|
|
|
2024-03-16 18:52:20 +00:00
|
|
|
set(ladybird_helper_processes ImageDecoder RequestServer SQLServer WebContent WebWorker)
|
|
|
|
|
2024-02-21 23:16:15 +00:00
|
|
|
add_dependencies(ladybird ${ladybird_helper_processes})
|
2024-03-16 18:52:20 +00:00
|
|
|
add_dependencies(headless-browser ${ladybird_helper_processes})
|
|
|
|
add_dependencies(WebDriver ladybird headless-browser)
|
2023-03-26 15:53:32 +00:00
|
|
|
|
2023-08-14 19:08:14 +00:00
|
|
|
function(create_ladybird_bundle target_name)
|
|
|
|
set_target_properties(${target_name} PROPERTIES
|
2023-09-03 14:16:49 +00:00
|
|
|
OUTPUT_NAME "Ladybird"
|
2023-08-14 19:08:14 +00:00
|
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER org.SerenityOS.Ladybird
|
|
|
|
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
|
|
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
|
|
|
MACOSX_BUNDLE_INFO_PLIST "${SERENITY_SOURCE_DIR}/Ladybird/Info.plist"
|
|
|
|
MACOSX_BUNDLE TRUE
|
|
|
|
WIN32_EXECUTABLE TRUE
|
|
|
|
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER org.SerenityOS.Ladybird
|
2023-03-26 15:53:32 +00:00
|
|
|
)
|
2023-08-14 19:08:14 +00:00
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
set(bundle_dir "$<TARGET_BUNDLE_DIR:${target_name}>")
|
|
|
|
add_custom_command(TARGET ${target_name} POST_BUILD
|
2024-02-22 01:11:45 +00:00
|
|
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${bundle_dir}/Contents/Resources"
|
2023-08-14 19:08:14 +00:00
|
|
|
COMMAND "iconutil" --convert icns "${SERENITY_SOURCE_DIR}/Ladybird/Icons/macos/app_icon.iconset" --output "${bundle_dir}/Contents/Resources/app_icon.icns"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
endfunction()
|
|
|
|
|
2023-08-20 20:14:31 +00:00
|
|
|
create_ladybird_bundle(ladybird)
|
2024-02-24 00:02:17 +00:00
|
|
|
set_helper_process_properties(${ladybird_helper_processes})
|
2024-03-16 18:52:20 +00:00
|
|
|
if (APPLE)
|
|
|
|
set_helper_process_properties(headless-browser WebDriver)
|
|
|
|
endif()
|
2022-10-07 23:08:29 +00:00
|
|
|
|
2024-02-22 01:11:45 +00:00
|
|
|
include(cmake/ResourceFiles.cmake)
|
2024-02-25 05:01:17 +00:00
|
|
|
set(resource_base_dir "${CMAKE_BINARY_DIR}/${IN_BUILD_PREFIX}${CMAKE_INSTALL_DATADIR}/Lagom")
|
2024-02-22 01:11:45 +00:00
|
|
|
if (APPLE)
|
|
|
|
set(resource_base_dir "$<TARGET_BUNDLE_DIR:ladybird>/Contents/Resources")
|
|
|
|
endif()
|
|
|
|
copy_resources_to_build(${resource_base_dir} ladybird)
|
|
|
|
|
2022-09-16 10:08:24 +00:00
|
|
|
if(NOT CMAKE_SKIP_INSTALL_RULES)
|
|
|
|
include(cmake/InstallRules.cmake)
|
|
|
|
endif()
|
2023-03-10 17:45:50 +00:00
|
|
|
|
|
|
|
include(CTest)
|
|
|
|
if (BUILD_TESTING)
|
|
|
|
add_test(
|
2023-05-27 17:46:17 +00:00
|
|
|
NAME LibWeb
|
2024-02-22 01:11:45 +00:00
|
|
|
COMMAND $<TARGET_FILE:headless-browser> --resources "${resource_base_dir}" --run-tests ${SERENITY_SOURCE_DIR}/Tests/LibWeb --dump-failed-ref-tests
|
2023-03-10 17:45:50 +00:00
|
|
|
)
|
2023-08-19 19:46:26 +00:00
|
|
|
add_test(
|
|
|
|
NAME WPT
|
|
|
|
CONFIGURATIONS Integration
|
|
|
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../Tests/LibWeb/WPT/run.sh
|
|
|
|
)
|
|
|
|
set_tests_properties(LibWeb WPT PROPERTIES
|
|
|
|
DEPENDS ladybird
|
|
|
|
ENVIRONMENT QT_QPA_PLATFORM=offscreen
|
|
|
|
ENVIRONMENT "SERENITY_SOURCE_DIR=${SERENITY_SOURCE_DIR}"
|
|
|
|
)
|
2023-03-10 17:45:50 +00:00
|
|
|
endif()
|