59 lines · plain
1# CMake build for ORC-RT.2 3#===============================================================================4# Setup Project5#===============================================================================6 7cmake_minimum_required(VERSION 3.20.0)8 9set(LLVM_COMMON_CMAKE_UTILS ${CMAKE_CURRENT_SOURCE_DIR}/../cmake)10include(${LLVM_COMMON_CMAKE_UTILS}/Modules/CMakePolicy.cmake11 NO_POLICY_SCOPE)12 13project(OrcRT LANGUAGES C CXX ASM)14 15list(INSERT CMAKE_MODULE_PATH 016 "${CMAKE_CURRENT_SOURCE_DIR}/cmake"17 "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"18 "${CMAKE_CURRENT_SOURCE_DIR}/../runtimes/cmake/Modules"19 "${LLVM_COMMON_CMAKE_UTILS}"20 "${LLVM_COMMON_CMAKE_UTILS}/Modules"21 )22 23include(GNUInstallDirs)24 25#===============================================================================26# Setup CMake Options27#===============================================================================28 29option(ORC_RT_INCLUDE_DOCS "Build the ORC-RT documentation." ON)30option(ORC_RT_ENABLE_ASSERTIONS "Enable assertions independent of build mode." ON)31option(ORC_RT_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)32option(ORC_RT_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)33option(ORC_RT_INCLUDE_TESTS "Build ORC-RT tests." ${LLVM_INCLUDE_TESTS})34 35set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to")36set(CMAKE_CXX_STANDARD_REQUIRED YES)37set(CMAKE_CXX_EXTENSIONS NO)38set(CMAKE_FOLDER "orc-rt")39 40set(ORC_RT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})41set(ORC_RT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})42 43#===============================================================================44# Setup Source Code45#===============================================================================46 47if (ORC_RT_INCLUDE_DOCS)48 add_subdirectory(docs)49endif()50 51add_subdirectory(include)52add_subdirectory(lib)53add_subdirectory(tools)54 55if(ORC_RT_INCLUDE_TESTS)56 add_subdirectory(test)57 add_subdirectory(unittests)58endif()59