123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- cmake_minimum_required(VERSION 3.25)
- if (VCPKG_TARGET_ANDROID)
-
-
-
- include("UI/Android/vcpkg_android.cmake")
- endif()
- include("Meta/CMake/use_linker.cmake")
- if (CMAKE_TOOLCHAIN_FILE MATCHES "vcpkg.cmake$")
- set(CMAKE_PROJECT_ladybird_INCLUDE_BEFORE "Meta/CMake/vcpkg/generate_vcpkg_toolchain_variables.cmake")
- endif()
- project(ladybird
- VERSION 0.1.0
- LANGUAGES C CXX
- DESCRIPTION "Ladybird Web Browser"
- HOMEPAGE_URL "https://ladybird.org"
- )
- if (ANDROID OR IOS)
- set(BUILD_SHARED_LIBS OFF)
- endif()
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- set(LADYBIRD_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
- list(APPEND CMAKE_MODULE_PATH "${LADYBIRD_SOURCE_DIR}/Meta/CMake")
- include(UI/cmake/EnableLagom.cmake)
- include(lagom_options NO_POLICY_SCOPE)
- include(lagom_compile_options)
- if (ENABLE_ADDRESS_SANITIZER)
- add_cxx_compile_options(-fsanitize=address -fno-omit-frame-pointer)
- add_cxx_link_options(-fsanitize=address)
- add_swift_compile_options(-sanitize=address)
- add_swift_link_options(-sanitize=address)
- endif()
- if (ENABLE_MEMORY_SANITIZER)
- add_cxx_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer)
- add_cxx_link_options(-fsanitize=memory -fsanitize-memory-track-origins)
- endif()
- if (ENABLE_UNDEFINED_SANITIZER AND (APPLE OR NOT ENABLE_SWIFT))
- add_cxx_compile_options(-fsanitize=undefined -fno-omit-frame-pointer)
- if (UNDEFINED_BEHAVIOR_IS_FATAL)
- add_cxx_compile_options(-fno-sanitize-recover=undefined)
- endif()
- if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17")
- add_cxx_compile_options(-fno-sanitize=function)
- endif()
- add_cxx_link_options(-fsanitize=undefined)
- add_swift_compile_options(-sanitize=undefined)
- add_swift_link_options(-sanitize=undefined)
- endif()
- if (HAIKU)
-
- add_compile_definitions(_DEFAULT_SOURCE)
- add_compile_definitions(_GNU_SOURCE)
- add_compile_definitions(__USE_GNU)
- endif()
- add_cxx_compile_options(-Wno-expansion-to-defined)
- add_cxx_compile_options(-Wno-user-defined-literals)
- if (ANDROID AND ENABLE_QT)
- message(STATUS "Disabling Qt for Android")
- set(ENABLE_QT OFF CACHE BOOL "" FORCE)
- endif()
- if (ENABLE_QT AND ENABLE_GUI_TARGETS)
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_AUTORCC ON)
- set(CMAKE_AUTOUIC ON)
- find_package(Qt6 REQUIRED COMPONENTS Core Widgets)
- endif()
- find_package(OpenSSL REQUIRED)
- include(CTest)
- if (ENABLE_GUI_TARGETS)
- add_subdirectory(Services)
- add_subdirectory(UI)
- endif()
- add_custom_target(lint-shell-scripts
- COMMAND "${ladybird_SOURCE_DIR}/Meta/lint-shell-scripts.sh"
- USES_TERMINAL
- )
- find_package(Python3 COMPONENTS Interpreter)
- if (Python3_FOUND)
- add_custom_target(check-style
- COMMAND ${Python3_EXECUTABLE} "${ladybird_SOURCE_DIR}/Meta/check-style.py"
- USES_TERMINAL
- )
- endif()
|