diff options
Diffstat (limited to 'Ladybird/CMakeLists.txt')
-rw-r--r-- | Ladybird/CMakeLists.txt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Ladybird/CMakeLists.txt b/Ladybird/CMakeLists.txt new file mode 100644 index 0000000000..e801b2c46b --- /dev/null +++ b/Ladybird/CMakeLists.txt @@ -0,0 +1,61 @@ +cmake_minimum_required(VERSION 3.16...3.22) + +project(ladybird + VERSION 0.0.1 + LANGUAGES CXX + DESCRIPTION "Ladybird Web Browser" +) + +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +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) + set(CMAKE_INSTALL_RPATH $ORIGIN) +endif() +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +include(cmake/EnableLLD.cmake) + +# Lagom +include(FetchContent) +include(cmake/FetchLagom.cmake) + +# Lagom warnings +include(${Lagom_SOURCE_DIR}/../CMake/lagom_compile_options.cmake) +add_compile_options(-Wno-expansion-to-defined) + +set(CMAKE_AUTOMOC ON) +find_package(Qt6 REQUIRED COMPONENTS Core Widgets) + +# FIXME: Stop using deprecated declarations from QT :^) +add_compile_options(-Wno-deprecated-declarations) + +set(SOURCES + BrowserWindow.cpp + main.cpp + WebView.cpp +) + +add_executable(ladybird ${SOURCES}) +target_link_libraries(ladybird PRIVATE Qt6::Widgets Lagom::Web Lagom::HTTP Lagom::WebSocket Lagom::Main) + +get_filename_component( + SERENITY_SOURCE_DIR "${Lagom_SOURCE_DIR}/../.." + ABSOLUTE +) + +add_custom_target(run + COMMAND "${CMAKE_COMMAND}" -E env "SERENITY_SOURCE_DIR=${SERENITY_SOURCE_DIR}" "$<TARGET_FILE:ladybird>" + USES_TERMINAL +) + +add_custom_target(debug + COMMAND "${CMAKE_COMMAND}" -E env "SERENITY_SOURCE_DIR=${SERENITY_SOURCE_DIR}" gdb "$<TARGET_FILE:ladybird>" + USES_TERMINAL +) + |