diff options
-rw-r--r-- | llvm/cmake/modules/LLVMExternalProjectUtils.cmake | 8 | ||||
-rw-r--r-- | llvm/cmake/modules/TableGen.cmake | 27 |
2 files changed, 21 insertions, 14 deletions
diff --git a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake index efe47e73441..f7020fbc166 100644 --- a/llvm/cmake/modules/LLVMExternalProjectUtils.cmake +++ b/llvm/cmake/modules/LLVMExternalProjectUtils.cmake @@ -3,12 +3,16 @@ include(ExternalProject) # llvm_ExternalProject_BuildCmd(out_var target) # Utility function for constructing command lines for external project targets function(llvm_ExternalProject_BuildCmd out_var target bin_dir) + cmake_parse_arguments(ARG "" "CONFIGURATION" "" ${ARGN}) + if(NOT ARG_CONFIGURATION) + set(ARG_CONFIGURATION "$<CONFIGURATION>") + endif() if (CMAKE_GENERATOR MATCHES "Make") # Use special command for Makefiles to support parallelism. - set(${out_var} "$(MAKE)" "-C" "${BINARY_DIR}" "${target}" PARENT_SCOPE) + set(${out_var} "$(MAKE)" "-C" "${bin_dir}" "${target}" PARENT_SCOPE) else() set(${out_var} ${CMAKE_COMMAND} --build ${bin_dir} --target ${target} - --config $<CONFIGURATION> PARENT_SCOPE) + --config ${ARG_CONFIGURATION} PARENT_SCOPE) endif() endfunction() diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake index b84fa93e90d..c9cfb37f8d2 100644 --- a/llvm/cmake/modules/TableGen.cmake +++ b/llvm/cmake/modules/TableGen.cmake @@ -2,6 +2,8 @@ # Extra parameters for `tblgen' may come after `ofn' parameter. # Adds the name of the generated file to TABLEGEN_OUTPUT. +include(LLVMExternalProjectUtils) + function(tablegen project ofn) # Validate calling context. foreach(v @@ -71,18 +73,15 @@ function(add_public_tablegen_target target) endfunction() if(LLVM_USE_HOST_TOOLS) - add_custom_command(OUTPUT LIB_LLVMSUPPORT - COMMAND ${CMAKE_COMMAND} --build . --target LLVMSupport --config Release - DEPENDS CONFIGURE_LLVM_NATIVE - WORKING_DIRECTORY ${LLVM_NATIVE_BUILD} - COMMENT "Building libLLVMSupport for native TableGen...") - add_custom_target(NATIVE_LIB_LLVMSUPPORT DEPENDS LIB_LLVMSUPPORT) - + llvm_ExternalProject_BuildCmd(tblgen_build_cmd LLVMSupport + ${LLVM_NATIVE_BUILD} + CONFIGURATION Release) add_custom_command(OUTPUT LIB_LLVMTABLEGEN - COMMAND ${CMAKE_COMMAND} --build . --target LLVMTableGen --config Release + COMMAND ${tblgen_build_cmd} DEPENDS CONFIGURE_LLVM_NATIVE WORKING_DIRECTORY ${LLVM_NATIVE_BUILD} - COMMENT "Building libLLVMTableGen for native TableGen...") + COMMENT "Building libLLVMTableGen for native TableGen..." + USES_TERMINAL) add_custom_target(NATIVE_LIB_LLVMTABLEGEN DEPENDS LIB_LLVMTABLEGEN) endif(LLVM_USE_HOST_TOOLS) @@ -123,11 +122,15 @@ macro(add_tablegen target project) endif() set(${project}_TABLEGEN_EXE ${${project}_TABLEGEN_EXE} PARENT_SCOPE) + llvm_ExternalProject_BuildCmd(tblgen_build_cmd ${target} + ${LLVM_NATIVE_BUILD} + CONFIGURATION Release) add_custom_command(OUTPUT ${${project}_TABLEGEN_EXE} - COMMAND ${CMAKE_COMMAND} --build . --target ${target} --config Release - DEPENDS ${target} NATIVE_LIB_LLVMSUPPORT NATIVE_LIB_LLVMTABLEGEN + COMMAND ${tblgen_build_cmd} + DEPENDS ${target} NATIVE_LIB_LLVMTABLEGEN WORKING_DIRECTORY ${LLVM_NATIVE_BUILD} - COMMENT "Building native TableGen...") + COMMENT "Building native TableGen..." + USES_TERMINAL) add_custom_target(${project}-tablegen-host DEPENDS ${${project}_TABLEGEN_EXE}) set(${project}_TABLEGEN_TARGET ${project}-tablegen-host PARENT_SCOPE) endif() |