|
|
@@ -60,7 +60,7 @@ if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
|
|
|
set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_REGEX "\nLd[^\n]*(\n[ \t]+[^\n]*)*\n[ \t]+([^ \t\r\n]+)[^\r\n]*-o[^\r\n]*CompilerIdCUDA/(\\./)?(CompilerIdCUDA.xctest/)?CompilerIdCUDA[ \t\n\\\"]")
|
|
|
set(CMAKE_CXX_COMPILER_ID_TOOL_MATCH_INDEX 2)
|
|
|
|
|
|
- set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-v")
|
|
|
+ set(CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS -v --keep --keep-dir tmp)
|
|
|
if(CMAKE_CUDA_HOST_COMPILER)
|
|
|
list(APPEND CMAKE_CUDA_COMPILER_ID_FLAGS_ALWAYS "-ccbin=${CMAKE_CUDA_HOST_COMPILER}")
|
|
|
endif()
|
|
|
@@ -106,6 +106,14 @@ if(CMAKE_CUDA_COMPILER_ID STREQUAL NVIDIA)
|
|
|
if("${_nvcc_output_line}" MATCHES "^ *nvlink")
|
|
|
string(APPEND _nvcc_log " ignoring nvlink line\n")
|
|
|
elseif(_nvcc_libraries)
|
|
|
+ if("${_nvcc_output_line}" MATCHES "(@\"?tmp/a\\.exe\\.res\"?)")
|
|
|
+ set(_nvcc_link_res_arg "${CMAKE_MATCH_1}")
|
|
|
+ set(_nvcc_link_res "${CMAKE_PLATFORM_INFO_DIR}/CompilerIdCUDA/tmp/a.exe.res")
|
|
|
+ if(EXISTS "${_nvcc_link_res}")
|
|
|
+ file(READ "${_nvcc_link_res}" _nvcc_link_res_content)
|
|
|
+ string(REPLACE "${_nvcc_link_res_arg}" "${_nvcc_link_res_content}" _nvcc_output_line "${_nvcc_output_line}")
|
|
|
+ endif()
|
|
|
+ endif()
|
|
|
string(FIND "${_nvcc_output_line}" "${_nvcc_libraries}" _nvcc_libraries_pos)
|
|
|
if(NOT _nvcc_libraries_pos EQUAL -1)
|
|
|
set(_nvcc_link_line "${_nvcc_output_line}")
|