|
|
@@ -279,6 +279,7 @@ if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
|
|
|
# For others select based on version.
|
|
|
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND CMAKE_CUDA_COMPILER_TOOLKIT_VERSION VERSION_GREATER_EQUAL 11.5)
|
|
|
string(APPEND nvcc_test_flags " -arch=${CMAKE_CUDA_ARCHITECTURES}")
|
|
|
+ set(architectures_tested "${CMAKE_CUDA_ARCHITECTURES}")
|
|
|
elseif(NOT CMAKE_GENERATOR MATCHES "Visual Studio")
|
|
|
if(CMAKE_CUDA_ARCHITECTURES STREQUAL "all")
|
|
|
set(architectures_test ${CMAKE_CUDA_ARCHITECTURES_ALL})
|
|
|
@@ -630,7 +631,7 @@ if("${CMAKE_CUDA_ARCHITECTURES}" STREQUAL "")
|
|
|
message(FATAL_ERROR "Failed to detect a default CUDA architecture.\n\nCompiler output:\n${CMAKE_CUDA_COMPILER_PRODUCED_OUTPUT}")
|
|
|
endif()
|
|
|
endif()
|
|
|
-else()
|
|
|
+elseif(NOT "${architectures_tested}" MATCHES "^(all|all-major)$")
|
|
|
# Sort since order mustn't matter.
|
|
|
list(SORT architectures_detected)
|
|
|
list(SORT architectures_tested)
|
|
|
@@ -671,6 +672,8 @@ unset(_CUDA_TARGET_DIR)
|
|
|
unset(_CUDA_TARGET_NAME)
|
|
|
|
|
|
unset(architectures_explicit)
|
|
|
+unset(architectures_detected)
|
|
|
+unset(architectures_tested)
|
|
|
|
|
|
set(CMAKE_CUDA_COMPILER_ENV_VAR "CUDACXX")
|
|
|
set(CMAKE_CUDA_HOST_COMPILER_ENV_VAR "CUDAHOSTCXX")
|