diff options
author | Henry Schreiner <hschrein@cern.ch> | 2018-04-20 15:19:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-04-23 15:26:56 (GMT) |
commit | 1fb2812d5b77ef077d8bcdd05e8250cd95d8e20c (patch) | |
tree | f0c8a661b1f390bdd6200e99318ae2fb47056c80 /Modules/CMakeDetermineCompilerId.cmake | |
parent | b0610e4c95ae83b890f1a50a9578dd40de5fb57e (diff) | |
download | CMake-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.cmake | 16 |
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}" |