mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-24 10:12:25 -05:00
b3dbf204fc
Our build of LLVM's objcopy now supports the single missing feature (--update-section) that previously forced us to use the one from GNU Binutils. This means that there is no reason anymore to build Binutils alongside LLVM's tools.
46 lines
2.1 KiB
Text
46 lines
2.1 KiB
Text
list(APPEND CMAKE_MODULE_PATH "@SERENITY_SOURCE_DIR@/Toolchain/CMake")
|
|
|
|
set(CMAKE_SYSTEM_NAME SerenityOS)
|
|
set(CMAKE_SYSTEM_PROCESSOR "@SERENITY_ARCH@")
|
|
|
|
set(SERENITYOS 1)
|
|
set(triple @SERENITY_ARCH@-pc-serenity)
|
|
set(TOOLCHAIN_ROOT @SERENITY_SOURCE_DIR@/Toolchain/Local/clang/)
|
|
set(TOOLCHAIN_PATH ${TOOLCHAIN_ROOT}/bin)
|
|
|
|
# where to read from/write to
|
|
set(CMAKE_SYSROOT @SERENITY_BUILD_DIR@/Root)
|
|
set(CMAKE_STAGING_PREFIX @SERENITY_BUILD_DIR@/Root/usr/local)
|
|
set(CMAKE_INSTALL_PREFIX /usr/local)
|
|
set(CMAKE_INSTALL_DATAROOTDIR share)
|
|
|
|
set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/clang)
|
|
set(CMAKE_C_COMPILER_TARGET ${triple})
|
|
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/clang++)
|
|
set(CMAKE_CXX_COMPILER_TARGET ${triple})
|
|
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PATH}/clang)
|
|
set(CMAKE_ASM_COMPILER_TARGET ${triple})
|
|
set(CMAKE_LINKER ${TOOLCHAIN_PATH}/ld.lld)
|
|
set(CMAKE_RANLIB ${TOOLCHAIN_PATH}/llvm-ranlib)
|
|
set(CMAKE_STRIP ${TOOLCHAIN_PATH}/llvm-strip)
|
|
set(CMAKE_AR ${TOOLCHAIN_PATH}/llvm-ar)
|
|
set(SERENITY_CXXFILT ${TOOLCHAIN_PATH}/llvm-cxxfilt)
|
|
set(CMAKE_OBJCOPY ${TOOLCHAIN_PATH}/llvm-objcopy)
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_INIT "-Wl,--hash-style=gnu,-z,relro,-z,now,-z,noexecstack,-z,max-page-size=0x1000,-z,separate-code")
|
|
|
|
# FIXME: We could eliminate this setting by building LibC and support asm files (crti.o, crtn.o)
|
|
# in a separate build stage before the main build to ensure that LibC is available
|
|
# for the try_compile check for the main build.
|
|
# Note that `set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)` is not a suitable replacement,
|
|
# since applications might try and use `try_compile()` to detect which library a symbol is in,
|
|
# which doesn't work when using static linking.
|
|
# Instead, just tell CMake directly that the compiler works fine, so that it doesn't have to run
|
|
# a compile check before the build.
|
|
set(CMAKE_C_COMPILER_WORKS TRUE)
|
|
set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
|
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH)
|