forked from OSchip/llvm-project
43 lines
1.6 KiB
CMake
43 lines
1.6 KiB
CMake
|
cmake_minimum_required(VERSION 3.13.4)
|
||
|
|
||
|
if (NOT IS_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/../libunwind")
|
||
|
message(FATAL_ERROR "llvm-libgcc requires being built in a monorepo layout with libunwind available")
|
||
|
endif()
|
||
|
|
||
|
set(LLVM_COMMON_CMAKE_UTILS "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
|
||
|
|
||
|
list(APPEND CMAKE_MODULE_PATH
|
||
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
|
||
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules"
|
||
|
"${LLVM_COMMON_CMAKE_UTILS}"
|
||
|
"${LLVM_COMMON_CMAKE_UTILS}/Modules"
|
||
|
)
|
||
|
|
||
|
project(llvm-libgcc LANGUAGES C CXX ASM)
|
||
|
|
||
|
if(NOT LLVM_LIBGCC_EXPLICIT_OPT_IN)
|
||
|
message(FATAL_ERROR
|
||
|
"llvm-libgcc is not for the casual LLVM user. It is intended to be used by distro "
|
||
|
"managers who want to replace libgcc with compiler-rt and libunwind, but cannot "
|
||
|
"fully abandon the libgcc family (e.g. because they are dependent on glibc). Such "
|
||
|
"managers must have worked out their compatibility requirements ahead of using "
|
||
|
"llvm-libgcc. If you want to build llvm-libgcc, please add -DLLVM_LIBGCC_EXPLICIT_OPT_IN=Yes "
|
||
|
"to your CMake invocation and try again.")
|
||
|
endif()
|
||
|
|
||
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib${LLVMLIB_DIR_SUFFIX}")
|
||
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib${LLVMLIB_DIR_SUFFIX}")
|
||
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
|
||
|
|
||
|
set(COMPILER_RT_BUILD_BUILTINS On)
|
||
|
set(COMPILER_RT_BUILTINS_HIDE_SYMBOLS Off)
|
||
|
add_subdirectory("../compiler-rt" "compiler-rt")
|
||
|
|
||
|
set(LIBUNWIND_ENABLE_STATIC On)
|
||
|
set(LIBUNWIND_ENABLE_SHARED Off)
|
||
|
set(LIBUNWIND_HAS_COMMENT_LIB_PRAGMA Off)
|
||
|
set(LIBUNWIND_USE_COMPILER_RT On)
|
||
|
add_subdirectory("../libunwind" "libunwind")
|
||
|
|
||
|
add_subdirectory(lib)
|