summaryrefslogtreecommitdiff
path: root/clang/CMakeLists.txt
diff options
context:
space:
mode:
authorCarlos Alberto Enciso <carlos.alberto.enciso@gmail.com>2022-08-23 05:45:25 +0100
committerCarlos Alberto Enciso <carlos.alberto.enciso@gmail.com>2022-08-23 05:45:25 +0100
commit6c6c4f6a9b3ef2d7db937cb78784245ea8a61418 (patch)
tree409dd5ce38f3ca54c570b2bfb62e486f414578ca /clang/CMakeLists.txt
parentb88aba9d7d72adbad2c2c4d1d513bed4f5aa81ad (diff)
downloadllvm-6c6c4f6a9b3ef2d7db937cb78784245ea8a61418.tar.gz
[CMake] Support passing arguments to build tool (bootstrap).
For bootstrap builds (CLANG_ENABLE_BOOTSTRAP=ON) allow arguments to be passed to the native tool used in CMake for the stage2 step. Can be used to pass extra arguments for enhanced versions of build tools, e.g. distributed build options. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D131665
Diffstat (limited to 'clang/CMakeLists.txt')
-rw-r--r--clang/CMakeLists.txt11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
index a6782db7b580..332df8f3b8bf 100644
--- a/clang/CMakeLists.txt
+++ b/clang/CMakeLists.txt
@@ -787,6 +787,14 @@ if (CLANG_ENABLE_BOOTSTRAP)
endif()
endforeach()
+ # Build arguments for native tool used in CMake.
+ set(build_configuration "$<CONFIG>")
+ set(build_tool_args "${LLVM_EXTERNAL_PROJECT_BUILD_TOOL_ARGS}")
+ if(NOT build_tool_args STREQUAL "")
+ string(PREPEND build_tool_args "-- ")
+ separate_arguments(build_tool_args UNIX_COMMAND "${build_tool_args}")
+ endif()
+
ExternalProject_Add(${NEXT_CLANG_STAGE}
DEPENDS clang-bootstrap-deps
PREFIX ${NEXT_CLANG_STAGE}
@@ -809,6 +817,9 @@ if (CLANG_ENABLE_BOOTSTRAP)
${${CLANG_STAGE}_RANLIB}
${${CLANG_STAGE}_OBJCOPY}
${${CLANG_STAGE}_STRIP}
+ BUILD_COMMAND ${CMAKE_COMMAND} --build ${BINARY_DIR}
+ --config ${build_configuration}
+ ${build_tool_args}
INSTALL_COMMAND ""
STEP_TARGETS configure build
USES_TERMINAL_CONFIGURE 1