[cmake] forward LLVM_EXTERNAL_*_SOURCE_DIR to runtimes (#180399)
Allow runtime source directories to live outside the top-level tree by honoring LLVM_EXTERNAL_*_SOURCE_DIR and propagating the values via RUNTIMES_CMAKE_ARGS.
This commit is contained in:
parent
cfaa67bb62
commit
e4245f2fc5
@ -5,15 +5,18 @@
|
|||||||
|
|
||||||
set(COMMON_CMAKE_ARGS "-DHAVE_LLVM_LIT=ON;-DCLANG_RESOURCE_DIR=${CLANG_RESOURCE_DIR}")
|
set(COMMON_CMAKE_ARGS "-DHAVE_LLVM_LIT=ON;-DCLANG_RESOURCE_DIR=${CLANG_RESOURCE_DIR}")
|
||||||
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
||||||
set(proj_dir "${CMAKE_CURRENT_SOURCE_DIR}/../../${proj}")
|
|
||||||
if(IS_DIRECTORY ${proj_dir} AND EXISTS ${proj_dir}/CMakeLists.txt)
|
|
||||||
list(APPEND runtimes ${proj_dir})
|
|
||||||
else()
|
|
||||||
message(FATAL_ERROR "LLVM_ENABLE_RUNTIMES requests ${proj} but directory not found: ${proj_dir}")
|
|
||||||
endif()
|
|
||||||
string(TOUPPER "${proj}" canon_name)
|
string(TOUPPER "${proj}" canon_name)
|
||||||
STRING(REGEX REPLACE "-" "_" canon_name ${canon_name})
|
STRING(REGEX REPLACE "-" "_" canon_name ${canon_name})
|
||||||
set(LLVM_EXTERNAL_${canon_name}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../${proj}")
|
if(NOT LLVM_EXTERNAL_${canon_name}_SOURCE_DIR)
|
||||||
|
set(LLVM_EXTERNAL_${canon_name}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../${proj}")
|
||||||
|
endif()
|
||||||
|
set(proj_dir "${LLVM_EXTERNAL_${canon_name}_SOURCE_DIR}")
|
||||||
|
if(NOT IS_DIRECTORY ${proj_dir} OR NOT EXISTS ${proj_dir}/CMakeLists.txt)
|
||||||
|
message(FATAL_ERROR "LLVM_ENABLE_RUNTIMES requests ${proj} but directory not found: ${proj_dir}")
|
||||||
|
endif()
|
||||||
|
list(APPEND runtimes ${proj_dir})
|
||||||
|
list(APPEND RUNTIMES_CMAKE_ARGS
|
||||||
|
"-DLLVM_EXTERNAL_${canon_name}_SOURCE_DIR=${LLVM_EXTERNAL_${canon_name}_SOURCE_DIR}")
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
function(get_compiler_rt_path path)
|
function(get_compiler_rt_path path)
|
||||||
|
|||||||
@ -46,15 +46,17 @@ endif()
|
|||||||
include(SortSubset)
|
include(SortSubset)
|
||||||
sort_subset("${LLVM_SUPPORTED_RUNTIMES}" "${LLVM_ENABLE_RUNTIMES}" LLVM_ENABLE_RUNTIMES)
|
sort_subset("${LLVM_SUPPORTED_RUNTIMES}" "${LLVM_ENABLE_RUNTIMES}" LLVM_ENABLE_RUNTIMES)
|
||||||
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
foreach(proj ${LLVM_ENABLE_RUNTIMES})
|
||||||
set(proj_dir "${CMAKE_CURRENT_SOURCE_DIR}/../${proj}")
|
string(TOUPPER "${proj}" canon_name)
|
||||||
|
STRING(REGEX REPLACE "-" "_" canon_name ${canon_name})
|
||||||
|
if(NOT LLVM_EXTERNAL_${canon_name}_SOURCE_DIR)
|
||||||
|
set(LLVM_EXTERNAL_${canon_name}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../${proj}")
|
||||||
|
endif()
|
||||||
|
set(proj_dir "${LLVM_EXTERNAL_${canon_name}_SOURCE_DIR}")
|
||||||
if(IS_DIRECTORY ${proj_dir} AND EXISTS ${proj_dir}/CMakeLists.txt)
|
if(IS_DIRECTORY ${proj_dir} AND EXISTS ${proj_dir}/CMakeLists.txt)
|
||||||
list(APPEND runtimes ${proj_dir})
|
list(APPEND runtimes ${proj_dir})
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "LLVM_ENABLE_RUNTIMES requests ${proj} but directory not found: ${proj_dir}")
|
message(FATAL_ERROR "LLVM_ENABLE_RUNTIMES requests ${proj} but directory not found: ${proj_dir}")
|
||||||
endif()
|
endif()
|
||||||
string(TOUPPER "${proj}" canon_name)
|
|
||||||
STRING(REGEX REPLACE "-" "_" canon_name ${canon_name})
|
|
||||||
set(LLVM_EXTERNAL_${canon_name}_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../${proj}")
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
function(runtime_register_component name)
|
function(runtime_register_component name)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user