mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-31 09:22:31 +00:00
[CMake] Support single target builtins build on Darwin
This change allows cross-compiling compiler-rt builtins for multiple targets as part of runtimes on Darwin. This functionality is already supported on other platforms. Differential Revision: https://reviews.llvm.org/D30957 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@298678 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
39c17c7b89
commit
85005dd1d4
@ -61,6 +61,10 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
# This variable makes sure that e.g. llvm-lit is found.
|
||||
set(LLVM_MAIN_SRC_DIR ${LLVM_BUILD_MAIN_SRC_DIR})
|
||||
|
||||
if(APPLE)
|
||||
set(LLVM_ENABLE_LIBCXX ON CACHE BOOL "")
|
||||
endif()
|
||||
|
||||
# Handle common options used by all runtimes.
|
||||
include(AddLLVM)
|
||||
include(HandleLLVMOptions)
|
||||
@ -153,7 +157,7 @@ else() # if this is included from LLVM's CMake
|
||||
# is required because the other runtimes need the builtin libraries present
|
||||
# before the just-built compiler can pass the configuration tests.
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/compiler-rt)
|
||||
if(APPLE OR NOT LLVM_BUILTIN_TARGETS)
|
||||
if(NOT LLVM_BUILTIN_TARGETS)
|
||||
llvm_ExternalProject_Add(builtins
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/compiler-rt/lib/builtins
|
||||
CMAKE_ARGS -DLLVM_LIBRARY_OUTPUT_INTDIR=${LLVM_LIBRARY_DIR}
|
||||
@ -167,6 +171,14 @@ else() # if this is included from LLVM's CMake
|
||||
get_cmake_property(variableNames VARIABLES)
|
||||
add_custom_target(builtins)
|
||||
foreach(target ${LLVM_BUILTIN_TARGETS})
|
||||
string(REPLACE "-" ";" builtin_target_list ${target})
|
||||
foreach(item ${builtin_target_list})
|
||||
string(TOLOWER "${item}" item_lower)
|
||||
if(item_lower MATCHES "darwin")
|
||||
message(FATAL_ERROR "LLVM_BUILTIN_TARGETS isn't implemented for Darwin platform!")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
foreach(variableName ${variableNames})
|
||||
if(variableName MATCHES "^BUILTINS_${target}")
|
||||
string(REPLACE "BUILTINS_${target}_" "" new_name ${variableName})
|
||||
@ -183,6 +195,7 @@ else() # if this is included from LLVM's CMake
|
||||
-DCMAKE_ASM_COMPILER_WORKS=On
|
||||
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=On
|
||||
${${target}_extra_args}
|
||||
TOOLCHAIN_TOOLS clang lld llvm-ar llvm-ranlib
|
||||
PASSTHROUGH_PREFIXES COMPILER_RT
|
||||
USE_TOOLCHAIN
|
||||
${EXTRA_ARGS})
|
||||
|
Loading…
x
Reference in New Issue
Block a user