summaryrefslogtreecommitdiffstats
path: root/Modules/CMakeDetermineCompilerId.cmake
diff options
context:
space:
mode:
authorHenry Schreiner <hschrein@cern.ch>2018-04-20 15:19:36 (GMT)
committerBrad King <brad.king@kitware.com>2018-04-23 15:26:56 (GMT)
commit1fb2812d5b77ef077d8bcdd05e8250cd95d8e20c (patch)
treef0c8a661b1f390bdd6200e99318ae2fb47056c80 /Modules/CMakeDetermineCompilerId.cmake
parentb0610e4c95ae83b890f1a50a9578dd40de5fb57e (diff)
downloadCMake-1fb2812d5b77ef077d8bcdd05e8250cd95d8e20c.zip
CMake-1fb2812d5b77ef077d8bcdd05e8250cd95d8e20c.tar.gz
CMake-1fb2812d5b77ef077d8bcdd05e8250cd95d8e20c.tar.bz2
CUDA: Add compiler detection for CUDA < 7.5
If the CUDA version macros are not defined, run `nvcc --version` and extract the version from its output. Fixes: #17920
Diffstat (limited to 'Modules/CMakeDetermineCompilerId.cmake')
-rw-r--r--Modules/CMakeDetermineCompilerId.cmake16
1 files changed, 16 insertions, 0 deletions
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 15c304c..ea5465a 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -52,6 +52,22 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
endforeach()
endif()
+ # CUDA < 7.5 is missing version macros
+ if(lang STREQUAL "CUDA"
+ AND CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
+ AND NOT CMAKE_${lang}_COMPILER_VERSION)
+ execute_process(
+ COMMAND "${CMAKE_${lang}_COMPILER}"
+ --version
+ OUTPUT_VARIABLE output ERROR_VARIABLE output
+ RESULT_VARIABLE result
+ TIMEOUT 10
+ )
+ if(output MATCHES [=[ V([0-9]+)\.([0-9]+)\.([0-9]+)]=])
+ set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
+ endif()
+ endif()
+
if (COMPILER_QNXNTO AND CMAKE_${lang}_COMPILER_ID STREQUAL "GNU")
execute_process(
COMMAND "${CMAKE_${lang}_COMPILER}"