mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 23:50:19 +00:00
eb6c911b3a
This keeps us from accidentally building toolchains that don't make it through a clean build if we build them using a populated sysroot, as it would otherwise detect libpthread and friends and try to pull them in while LibC is not yet built.
74 lines
3.5 KiB
CMake
74 lines
3.5 KiB
CMake
# This file specifies the options used for building the various LLVM runtime libraries
|
|
|
|
# Note: We force the cmake module path for all dependent projects to include our custom directory
|
|
# That has the Platform/SerenityOS.cmake definition
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${SERENITY_MODULE_PATH}" CACHE STRING "Modules for CMake")
|
|
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "")
|
|
|
|
set(LLVM_ENABLE_RUNTIMES "libcxx;libcxxabi;libunwind" CACHE STRING "")
|
|
|
|
set(CMAKE_SYSTEM_NAME SerenityOS CACHE STRING "")
|
|
set(target_triple ${SERENITY_TOOLCHAIN_ARCH}-pc-serenity)
|
|
|
|
IF(${CMAKE_HOST_SYSTEM_NAME} MATCHES "Darwin")
|
|
set(CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE BOOL "")
|
|
ENDIF()
|
|
|
|
set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
|
|
set(LLVM_ENABLE_BINDINGS OFF CACHE BOOL "")
|
|
set(LLVM_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
|
|
set(LLVM_BUILD_UTILS OFF CACHE BOOL "")
|
|
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
|
|
set(LLVM_BUILD_LLVM_DYLIB ON CACHE BOOL "")
|
|
set(LLVM_LINK_LLVM_DYLIB ON CACHE BOOL "")
|
|
set(LLVM_INSTALL_UTILS OFF CACHE BOOL "")
|
|
set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")
|
|
set(LLVM_INSTALL_BINUTILS_SYMLINKS OFF CACHE BOOL "")
|
|
set(LLVM_DEFAULT_TARGET_TRIPLE ${target_triple} CACHE STRING "")
|
|
set(LLVM_BINARY_DIR "${SERENITY_TOOLCHAIN_ROOT}" CACHE PATH "")
|
|
|
|
set(CMAKE_SYSROOT "${SERENITY_BUILD_DIR}/Root" CACHE PATH "")
|
|
set(compiler_flags "-nostdlib -nostdlib++")
|
|
|
|
set(CMAKE_C_COMPILER "${SERENITY_TOOLCHAIN_ROOT}/bin/clang" CACHE PATH "")
|
|
set(CMAKE_C_COMPILER_WORKS ON CACHE BOOL "")
|
|
set(CMAKE_CXX_COMPILER "${SERENITY_TOOLCHAIN_ROOT}/bin/clang++" CACHE PATH "")
|
|
set(CMAKE_CXX_COMPILER_WORKS ON CACHE BOOL "")
|
|
set(CMAKE_ASM_COMPILER "${SERENITY_TOOLCHAIN_ROOT}/bin/clang" CACHE PATH "")
|
|
set(CMAKE_ASM_COMPILER_WORKS ON CACHE BOOL "")
|
|
set(CMAKE_LINKER "${SERENITY_TOOLCHAIN_ROOT}/bin/ld.lld" CACHE PATH "")
|
|
|
|
set(CMAKE_ADDR2LINE "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-addr2line" CACHE PATH "")
|
|
set(CMAKE_AR "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-ar" CACHE PATH "")
|
|
set(CMAKE_NM "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-nm" CACHE PATH "")
|
|
set(CMAKE_OBJCOPY "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-objcopy" CACHE PATH "")
|
|
set(CMAKE_OBJDUMP "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-objdump" CACHE PATH "")
|
|
set(CMAKE_RANLIB "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-ranlib" CACHE PATH "")
|
|
set(CMAKE_READELF "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-readelf" CACHE PATH "")
|
|
set(CMAKE_STRIP "${SERENITY_TOOLCHAIN_ROOT}/bin/llvm-strip" CACHE PATH "")
|
|
|
|
set(CMAKE_C_COMPILER_TARGET ${target_triple} CACHE STRING "")
|
|
set(CMAKE_CXX_COMPILER_TARGET ${target_triple} CACHE STRING "")
|
|
set(CMAKE_ASM_COMPILER_TARGET ${target_triple} CACHE STRING "")
|
|
|
|
set(CMAKE_C_FLAGS ${compiler_flags} CACHE STRING "")
|
|
set(CMAKE_CXX_FLAGS ${compiler_flags} CACHE STRING "")
|
|
|
|
set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "")
|
|
set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "")
|
|
set(LIBCXX_INCLUDE_BENCHMARKS OFF CACHE BOOL "")
|
|
set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "")
|
|
set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "")
|
|
|
|
# Hardcode autodetection results for libm, libdl, and libpthread.
|
|
# This keeps us from accidentially detecting those libraries as being present
|
|
# if we build the toolchain with a populated sysroot (which features the
|
|
# compability linker scripts).
|
|
# TODO: Figure out if we can always build against the Stubs directory instead.
|
|
set(LIBCXXABI_HAS_DL_LIB OFF CACHE BOOL "")
|
|
set(LIBCXXABI_HAS_PTHREAD_LIB OFF CACHE BOOL "")
|
|
set(LIBCXX_HAS_M_LIB OFF CACHE BOOL "")
|
|
set(LIBCXX_HAS_PTHREAD_LIB OFF CACHE BOOL "")
|
|
set(LIBUNWIND_HAS_DL_LIB OFF CACHE BOOL "")
|
|
set(LIBUNWIND_HAS_PTHREAD_LIB OFF CACHE BOOL "")
|