mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-18 08:51:52 +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()
|
||||||
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"
|
if(CMAKE_${lang}_COMPILER_ID STREQUAL "NVIDIA"
|
||||||
OR (CMAKE_${lang}_COMPILER_ID STREQUAL "Clang" AND CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL 16.0)
|
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(DEFINED CMAKE_${lang}_ARCHITECTURES)
|
||||||
if(CMAKE_${lang}_ARCHITECTURES STREQUAL "")
|
if(CMAKE_${lang}_ARCHITECTURES STREQUAL "")
|
||||||
message(FATAL_ERROR "CMAKE_${lang}_ARCHITECTURES must be non-empty if set.")
|
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
|
message(FATAL_ERROR
|
||||||
"CMAKE_${lang}_ARCHITECTURES:\n"
|
"CMAKE_${lang}_ARCHITECTURES:\n"
|
||||||
" ${CMAKE_${lang}_ARCHITECTURES}\n"
|
" ${CMAKE_${lang}_ARCHITECTURES}\n"
|
||||||
|
@@ -25,7 +25,9 @@ function(verify_output flag)
|
|||||||
list(APPEND command_archs "${CMAKE_MATCH_1}")
|
list(APPEND command_archs "${CMAKE_MATCH_1}")
|
||||||
endforeach()
|
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)
|
list(REMOVE_DUPLICATES command_archs)
|
||||||
if(NOT "${command_archs}" STREQUAL "${architectures}")
|
if(NOT "${command_archs}" STREQUAL "${architectures}")
|
||||||
message(FATAL_ERROR "Architectures used for \"${flag}\" don't match the reference (\"${command_archs}\" != \"${architectures}\").")
|
message(FATAL_ERROR "Architectures used for \"${flag}\" don't match the reference (\"${command_archs}\" != \"${architectures}\").")
|
||||||
|
Reference in New Issue
Block a user