Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 26 additions & 33 deletions llvm/runtimes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,30 @@ macro(set_enable_per_target_runtime_dir)
endif()
endmacro()

macro(append_passthrough_options out type names)
get_cmake_property(variable_names VARIABLES)

# Support multiple names for layering (e.g. multilibs).
foreach(name IN ITEMS ${names})
foreach(variable_name ${variable_names})
string(FIND "${variable_name}" "${type}_${name}_" found)

if(found EQUAL 0)
string(REPLACE "${type}_${name}_" "" new_name ${variable_name})

if(new_name STREQUAL CACHE_FILES)
foreach(cache IN LISTS ${variable_name})
list(APPEND ${out} -C ${cache})
endforeach()
else()
string(REPLACE ";" "|" new_value "${${variable_name}}")
list(APPEND ${out} "-D${new_name}=${new_value}")
endif()
endif()
endforeach()
endforeach()
endmacro()

function(builtin_default_target compiler_rt_path)
cmake_parse_arguments(ARG "" "" "DEPENDS" ${ARGN})

Expand Down Expand Up @@ -122,21 +146,7 @@ function(builtin_register_target compiler_rt_path name)
cmake_parse_arguments(ARG "" "" "DEPENDS;CMAKE_ARGS;EXTRA_ARGS" ${ARGN})

set(${name}_extra_args ${ARG_CMAKE_ARGS})
get_cmake_property(variable_names VARIABLES)
foreach(variable_name ${variable_names})
string(FIND "${variable_name}" "BUILTINS_${name}" out)
if("${out}" EQUAL 0)
string(REPLACE "BUILTINS_${name}_" "" new_name ${variable_name})
if(new_name STREQUAL CACHE_FILES)
foreach(cache IN LISTS ${variable_name})
list(APPEND ${name}_extra_args -C ${cache})
endforeach()
else()
string(REPLACE ";" "|" new_value "${${variable_name}}")
list(APPEND ${name}_extra_args "-D${new_name}=${new_value}")
endif()
endif()
endforeach()
append_passthrough_options(${name}_extra_args BUILTINS ${name})

llvm_ExternalProject_Add(builtins-${name}
${compiler_rt_path}/lib/builtins
Expand Down Expand Up @@ -404,24 +414,7 @@ function(runtime_register_target name)
string(REPLACE ";" "|" LLVM_ENABLE_RUNTIMES_PASSTHROUGH "${LLVM_ENABLE_RUNTIMES}")
list(APPEND ${name}_extra_args -DLLVM_ENABLE_RUNTIMES=${LLVM_ENABLE_RUNTIMES_PASSTHROUGH})
list(APPEND ${name}_extra_args -DLLVM_USE_LINKER=${LLVM_USE_LINKER})

get_cmake_property(variable_names VARIABLES)
foreach(extra_name IN ITEMS ${ARG_BASE_NAME} ${name})
foreach(variable_name ${variable_names})
string(FIND "${variable_name}" "RUNTIMES_${extra_name}_" out)
if("${out}" EQUAL 0)
string(REPLACE "RUNTIMES_${extra_name}_" "" new_name ${variable_name})
if(new_name STREQUAL CACHE_FILES)
foreach(cache IN LISTS ${variable_name})
list(APPEND ${name}_extra_args -C ${cache})
endforeach()
else()
string(REPLACE ";" "|" new_value "${${variable_name}}")
list(APPEND ${name}_extra_args "-D${new_name}=${new_value}")
endif()
endif()
endforeach()
endforeach()
append_passthrough_options(${name}_extra_args RUNTIMES "${ARG_BASE_NAME};${name}")

set_enable_per_target_runtime_dir()

Expand Down