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 @@ -62,7 +62,13 @@ foreach(tool ${ARG_TOOLCHAIN_TOOLS}) if(TARGET ${tool}) list(APPEND TOOLCHAIN_TOOLS ${tool}) - list(APPEND TOOLCHAIN_BINS $<TARGET_FILE:${tool}>) + + # $<TARGET_FILE:tgt> only works on add_executable or add_library targets + get_target_property(target_type "${tool}" TYPE) + if (target_type STREQUAL "EXECUTABLE" OR target_type SREQUAL "LIBRARY") + list(APPEND TOOLCHAIN_BINS $<TARGET_FILE:${tool}>) + endif() + endif() endforeach()