[bootstrap] Allow passing options to sub-builds for all targets
This patch makes it possible to pass a CMake option to one of the runtimes for all targets being built. Basically, any option that starts with the name of a runtime project being built will be forwarded as-is to the sub-build. This is useful for customizing a sub-build for all targets. Differential Revision: https://reviews.llvm.org/D121822
This commit is contained in:
parent
523914c20d
commit
240e06dfe7
|
@ -462,7 +462,7 @@ bootstrapping-build)
|
|||
-DLLVM_TARGETS_TO_BUILD="host" \
|
||||
-DRUNTIMES_BUILD_ALLOW_DARWIN=ON \
|
||||
-DLLVM_ENABLE_ASSERTIONS=ON \
|
||||
-DRUNTIMES_LIBUNWIND_TEST_CONFIG="llvm-libunwind-shared.cfg.in"
|
||||
-DLIBUNWIND_TEST_CONFIG="llvm-libunwind-shared.cfg.in"
|
||||
|
||||
echo "+++ Running the libc++ and libc++abi tests"
|
||||
${NINJA} -C "${BUILD_DIR}" check-runtimes
|
||||
|
|
|
@ -340,6 +340,17 @@ function(runtime_register_target name target)
|
|||
endforeach()
|
||||
endif()
|
||||
|
||||
# If we're passed any option like <project>_FOO, pass it through to the sub-builds.
|
||||
foreach(runtime ${LLVM_ENABLE_RUNTIMES})
|
||||
string(TOUPPER "${runtime}" runtime_upper)
|
||||
foreach(variableName ${variableNames})
|
||||
if (variableName MATCHES "^${runtime_upper}_.+")
|
||||
string(REPLACE ";" "|" escaped_value "${${variableName}}")
|
||||
list(APPEND ${name}_extra_args "-D${variableName}=${escaped_value}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(NOT RUNTIMES_${name}_LLVM_ENABLE_RUNTIMES AND NOT RUNTIMES_${target}_LLVM_ENABLE_RUNTIMES)
|
||||
string(REPLACE ";" "|" LLVM_ENABLE_RUNTIMES_PASSTHROUGH "${LLVM_ENABLE_RUNTIMES}")
|
||||
list(APPEND ${name}_extra_args -DLLVM_ENABLE_RUNTIMES=${LLVM_ENABLE_RUNTIMES_PASSTHROUGH})
|
||||
|
|
Loading…
Reference in New Issue