serenity/Toolchain/CMakeToolchain.txt
Gunnar Beutner c6c1e2037b Toolchain: Add platform definition for CMake
This also ensures that pkg-config finds packages in /usr/local
and changes the install prefix to /usr/local.
2021-04-16 19:04:24 +02:00

34 lines
1 KiB
Plaintext

set(CMAKE_SYSTEM_NAME SerenityOS)
if (NOT DEFINED ENV{SERENITY_ARCH})
message(FATAL_ERROR "SERENITY_ARCH not set.")
endif()
if (NOT DEFINED ENV{SERENITY_ROOT})
message(FATAL_ERROR "SERENITY_ROOT not set.")
endif()
set(SERENITYOS 1)
set(CMAKE_SYSTEM_PROCESSOR "$ENV{SERENITY_ARCH}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
set(SERENITY_BUILD_DIR $ENV{SERENITY_ROOT}/Build/$ENV{SERENITY_ARCH})
# where to read from/write to
set(CMAKE_SYSROOT ${SERENITY_BUILD_DIR}/Root)
set(CMAKE_STAGING_PREFIX ${SERENITY_BUILD_DIR}/Root/usr)
set(CMAKE_INSTALL_PREFIX ${SERENITY_BUILD_DIR}/Root/usr)
set(CMAKE_INSTALL_DATAROOTDIR ${SERENITY_BUILD_DIR}/Root/usr/share)
set(CMAKE_C_COMPILER $ENV{SERENITY_ARCH}-pc-serenity-gcc)
set(CMAKE_CXX_COMPILER $ENV{SERENITY_ARCH}-pc-serenity-g++)
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 ONLY)
list(APPEND CMAKE_MODULE_PATH "$ENV{SERENITY_ROOT}/Toolchain/CMake")