mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
We haven't required a local copy of the ca-certificates since switching to OpenSSL as the backend for TLS. Remove the script to download the PEM file, and update the tests to use the system's CA certificates.
69 lines
3.4 KiB
CMake
69 lines
3.4 KiB
CMake
# Make relative paths in depfiles be relative to CMAKE_CURRENT_BINARY_DIR rather than to CMAKE_BINARY_DIR
|
|
if (POLICY CMP0116)
|
|
cmake_policy(SET CMP0116 NEW)
|
|
endif()
|
|
|
|
# Enable better flags for configuring swift compilation mode
|
|
if (POLICY CMP0157)
|
|
cmake_policy(SET CMP0157 NEW)
|
|
set(CMAKE_Swift_COMPILATION_MODE "$<IF:$<CONFIG:Release>,wholemodule,incremental>")
|
|
endif()
|
|
|
|
# Check arguments to return()
|
|
if (POLICY CMP0140)
|
|
cmake_policy(SET CMP0140 NEW)
|
|
endif()
|
|
|
|
ladybird_option(BUILD_SHARED_LIBS ON CACHE BOOL "Build shared libraries instead of static libraries")
|
|
|
|
ladybird_option(ENABLE_COMPILETIME_FORMAT_CHECK ON CACHE BOOL "Enable compiletime format string checks")
|
|
ladybird_option(ENABLE_UNDEFINED_SANITIZER OFF CACHE BOOL "Enable undefined behavior sanitizer testing in gcc/clang")
|
|
ladybird_option(UNDEFINED_BEHAVIOR_IS_FATAL OFF CACHE BOOL "Make undefined behavior sanitizer errors non-recoverable")
|
|
|
|
ladybird_option(ENABLE_ALL_THE_DEBUG_MACROS OFF CACHE BOOL "Enable all debug macros to validate they still compile")
|
|
ladybird_option(ENABLE_ALL_DEBUG_FACILITIES OFF CACHE BOOL "Enable all noisy debug symbols and options. Not recommended for normal developer use")
|
|
ladybird_option(ENABLE_COMPILETIME_HEADER_CHECK OFF CACHE BOOL "Enable compiletime check that each library header compiles stand-alone")
|
|
|
|
ladybird_option(INCLUDE_WASM_SPEC_TESTS OFF CACHE BOOL "Download and include the WebAssembly spec testsuite")
|
|
|
|
ladybird_option(LADYBIRD_CACHE_DIR "${PROJECT_BINARY_DIR}/../caches" CACHE PATH "Location of shared cache of downloaded files")
|
|
ladybird_option(ENABLE_NETWORK_DOWNLOADS ON CACHE BOOL "Allow downloads of required files. If OFF, required files must already be present in LADYBIRD_CACHE_DIR")
|
|
|
|
ladybird_option(ENABLE_CLANG_PLUGINS OFF CACHE BOOL "Enable building with the Clang plugins")
|
|
ladybird_option(ENABLE_CLANG_PLUGINS_INVALID_FUNCTION_MEMBERS OFF CACHE BOOL "Enable detecting invalid function types as members of GC-allocated objects")
|
|
|
|
ladybird_option(ENABLE_GUI_TARGETS ON CACHE BOOL "Enable building GUI targets")
|
|
ladybird_option(ENABLE_INSTALL_HEADERS ON CACHE BOOL "Enable installing headers")
|
|
ladybird_option(ENABLE_SWIFT OFF CACHE BOOL "Enable building Swift files")
|
|
ladybird_option(ENABLE_STD_STACKTRACE OFF CACHE BOOL "Force use of std::stacktrace instead of libbacktrace. If it is not supported the build will fail")
|
|
ladybird_option(ENABLE_WINDOWS_CI OFF CACHE BOOL "Enable building targets supported on Windows for CI")
|
|
|
|
if (ENABLE_FUZZERS_LIBFUZZER)
|
|
# With libfuzzer, we need to avoid a duplicate main() linker error giving false negatives
|
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY CACHE STRING "Type of target to use for try_compile()" FORCE)
|
|
endif()
|
|
|
|
if (ENABLE_SWIFT)
|
|
include(${CMAKE_CURRENT_LIST_DIR}/Swift/swift-settings.cmake)
|
|
endif()
|
|
|
|
include(CheckCXXSourceCompiles)
|
|
set(BLOCKS_REQUIRED_LIBRARIES "")
|
|
if (NOT APPLE)
|
|
find_package(BlocksRuntime)
|
|
if (BlocksRuntime_FOUND)
|
|
set(BLOCKS_REQUIRED_LIBRARIES BlocksRuntime::BlocksRuntime)
|
|
set(CMAKE_REQUIRED_LIBRARIES BlocksRuntime::BlocksRuntime)
|
|
endif()
|
|
endif()
|
|
check_cxx_source_compiles([=[
|
|
int main() { __block int x = 0; auto b = ^{++x;}; b(); }
|
|
]=] CXX_COMPILER_SUPPORTS_BLOCKS)
|
|
|
|
set(CMAKE_REQUIRED_FLAGS "-fobjc-arc")
|
|
check_cxx_source_compiles([=[
|
|
int main() { auto b = ^{}; auto __weak w = b; w(); }
|
|
]=] CXX_COMPILER_SUPPORTS_OBJC_ARC)
|
|
unset(CMAKE_REQUIRED_FLAGS)
|
|
unset(CMAKE_REQUIRED_LIBRARIES)
|