mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
Merge branch 'backport-cuda-12.9' into cuda-12.9
This commit is contained in:
@@ -71,7 +71,14 @@ function(cmake_cuda_architectures_all lang lang_var_)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.8)
|
||||
if(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.9)
|
||||
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
|
||||
OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
|
||||
)
|
||||
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL 100 101 103 120 121)
|
||||
list(APPEND CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR 100 120)
|
||||
endif()
|
||||
elseif(${lang_var_}TOOLKIT_VERSION VERSION_GREATER_EQUAL 12.8)
|
||||
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
|
||||
OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
|
||||
)
|
||||
|
@@ -5,7 +5,7 @@ function(cmake_cuda_architectures_validate lang)
|
||||
if(DEFINED CMAKE_${lang}_ARCHITECTURES)
|
||||
if(CMAKE_${lang}_ARCHITECTURES STREQUAL "")
|
||||
message(FATAL_ERROR "CMAKE_${lang}_ARCHITECTURES must be non-empty if set.")
|
||||
elseif(CMAKE_${lang}_ARCHITECTURES AND NOT CMAKE_${lang}_ARCHITECTURES MATCHES "^([0-9]+a?(-real|-virtual)?(;[0-9]+a?(-real|-virtual)?|;)*|all|all-major|native)$")
|
||||
elseif(CMAKE_${lang}_ARCHITECTURES AND NOT CMAKE_${lang}_ARCHITECTURES MATCHES "^([0-9]+(a|f)?(-real|-virtual)?(;[0-9]+(a|f)?(-real|-virtual)?|;)*|all|all-major|native)$")
|
||||
message(FATAL_ERROR
|
||||
"CMAKE_${lang}_ARCHITECTURES:\n"
|
||||
" ${CMAKE_${lang}_ARCHITECTURES}\n"
|
||||
|
@@ -25,7 +25,9 @@ function(verify_output flag)
|
||||
list(APPEND command_archs "${CMAKE_MATCH_1}")
|
||||
endforeach()
|
||||
|
||||
list(SORT command_archs)
|
||||
# We need to use a NATURAL comparison so that architecture values like `100`
|
||||
# get placed at the end instead of the front
|
||||
list(SORT command_archs COMPARE NATURAL)
|
||||
list(REMOVE_DUPLICATES command_archs)
|
||||
if(NOT "${command_archs}" STREQUAL "${architectures}")
|
||||
message(FATAL_ERROR "Architectures used for \"${flag}\" don't match the reference (\"${command_archs}\" != \"${architectures}\").")
|
||||
|
Reference in New Issue
Block a user