diff options
Diffstat (limited to 'Toolchain/CMake/GNUToolchain.txt.in')
-rw-r--r-- | Toolchain/CMake/GNUToolchain.txt.in | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Toolchain/CMake/GNUToolchain.txt.in b/Toolchain/CMake/GNUToolchain.txt.in new file mode 100644 index 0000000000..9a0a2efdc8 --- /dev/null +++ b/Toolchain/CMake/GNUToolchain.txt.in @@ -0,0 +1,37 @@ +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_PATH @SERENITY_SOURCE_DIR@/Toolchain/Local/@SERENITY_ARCH@/bin) +set(TOOLCHAIN_PREFIX ${TOOLCHAIN_PATH}/${triple}-) + +# 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 @SERENITY_BUILD_DIR@/Root/usr/local) +set(CMAKE_INSTALL_DATAROOTDIR @SERENITY_BUILD_DIR@/Root/usr/local/share) + +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) +set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}gcc) +set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}ld) +set(CMAKE_RANLIB ${TOOLCHAIN_PREFIX}gcc-ranlib) +set(CMAKE_STRIP ${TOOLCHAIN_PREFIX}strip) +set(CMAKE_AR ${TOOLCHAIN_PREFIX}gcc-ar) +set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) +set(CMAKE_CXXFILT ${TOOLCHAIN_PREFIX}c++filt) + +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. +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + +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) |