diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -176,6 +176,10 @@ endif() endif() +set(LLVM_EXTERNAL_PROJECT_BUILD_TOOL_ARGS "" CACHE STRING + "Optional arguments for the native tool used in CMake --build invocations for external projects.") +mark_as_advanced(LLVM_EXTERNAL_PROJECT_BUILD_TOOL_ARGS) + option(LLVM_DEPENDENCY_DEBUGGING "Dependency debugging mode to verify correctly expressed library dependencies (Darwin only)" OFF) # Some features of the LLVM build may be disallowed when dependency debugging is diff --git a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake --- a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -11,8 +11,14 @@ # Use special command for Makefiles to support parallelism. set(${out_var} "$(MAKE)" "-C" "${bin_dir}" "${target}" PARENT_SCOPE) else() + set(tool_args "${LLVM_EXTERNAL_PROJECT_BUILD_TOOL_ARGS}") + if(NOT tool_args STREQUAL "") + string(CONFIGURE "${tool_args}" tool_args @ONLY) + string(PREPEND tool_args "-- ") + separate_arguments(tool_args UNIX_COMMAND "${tool_args}") + endif() set(${out_var} ${CMAKE_COMMAND} --build ${bin_dir} --target ${target} - --config ${ARG_CONFIGURATION} PARENT_SCOPE) + --config ${ARG_CONFIGURATION} ${tool_args} PARENT_SCOPE) endif() endfunction()