Index: llvm/cmake/modules/AddLLVM.cmake =================================================================== --- llvm/cmake/modules/AddLLVM.cmake +++ llvm/cmake/modules/AddLLVM.cmake @@ -892,9 +892,13 @@ if (ARG_GENERATE_DRIVER) string(REPLACE "-" "_" TOOL_NAME ${name}) - configure_file( - ${LLVM_MAIN_SRC_DIR}/cmake/driver-template.cpp.in - ${CMAKE_CURRENT_BINARY_DIR}/${name}-driver.cpp) + foreach(path ${CMAKE_MODULE_PATH}) + if(EXISTS ${path}/llvm-driver-template.cpp.in) + configure_file( + ${path}/llvm-driver-template.cpp.in + ${CMAKE_CURRENT_BINARY_DIR}/${name}-driver.cpp) + endif() + endforeach() list(APPEND ALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}-driver.cpp) Index: llvm/cmake/modules/CMakeLists.txt =================================================================== --- llvm/cmake/modules/CMakeLists.txt +++ llvm/cmake/modules/CMakeLists.txt @@ -173,7 +173,8 @@ PATTERN LLVMConfigExtensions.cmake EXCLUDE PATTERN LLVMConfigVersion.cmake EXCLUDE PATTERN LLVM-Config.cmake EXCLUDE - PATTERN GetHostTriple.cmake EXCLUDE) + PATTERN GetHostTriple.cmake EXCLUDE + PATTERN llvm-driver-template.cpp.in) if (NOT LLVM_ENABLE_IDE) # Add a dummy target so this can be used with LLVM_DISTRIBUTION_COMPONENTS