mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
CUDA: Restore CMAKE_CUDA_ARCHITECTURES support for -real and -virtual suffixes
Fix the validation regex added by commit c267ed205a (CUDA: Defer
architecture testing to the compiler testing step, 2022-04-25) to
allow these values.
This commit is contained in:
@@ -275,13 +275,14 @@ if(NOT CMAKE_CUDA_COMPILER_ID_RUN)
|
||||
if(DEFINED CMAKE_CUDA_ARCHITECTURES)
|
||||
if(CMAKE_CUDA_ARCHITECTURES STREQUAL "")
|
||||
message(FATAL_ERROR "CMAKE_CUDA_ARCHITECTURES must be non-empty if set.")
|
||||
elseif(CMAKE_CUDA_ARCHITECTURES AND NOT CMAKE_CUDA_ARCHITECTURES MATCHES "^([0-9]+[;0-9]*|all|all-major|native)$")
|
||||
elseif(CMAKE_CUDA_ARCHITECTURES AND NOT CMAKE_CUDA_ARCHITECTURES MATCHES "^([0-9]+(-real|-virtual)?(;[0-9]+(-real|-virtual)?|;)*|all|all-major|native)$")
|
||||
message(FATAL_ERROR
|
||||
"CMAKE_CUDA_ARCHITECTURES:\n"
|
||||
" ${CMAKE_CUDA_ARCHITECTURES}\n"
|
||||
"is not one of the following:\n"
|
||||
"* a semicolon-separated list of integers\n"
|
||||
"* a special value: all, all-major, native\n"
|
||||
" * a semicolon-separated list of integers, each optionally\n"
|
||||
" followed by '-real' or '-virtual'\n"
|
||||
" * a special value: all, all-major, native\n"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -20,3 +20,8 @@ if(CMAKE_CUDA_COMPILER_ID STREQUAL "Clang" AND CMAKE_CUDA_ARCHITECTURES)
|
||||
endif()
|
||||
run_cmake(architectures-off)
|
||||
unset(RunCMake_TEST_OPTIONS)
|
||||
|
||||
if(CMAKE_CUDA_ARCHITECTURES MATCHES "([0-9]+)")
|
||||
set(arch "${CMAKE_MATCH_1}")
|
||||
run_cmake_with_options(architectures-suffix -Darch=${arch})
|
||||
endif()
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
is not one of the following:
|
||||
|
||||
\* a semicolon-separated list of integers
|
||||
|
||||
\* a special value: all, all-major, native
|
||||
\* a semicolon-separated list of integers, each optionally
|
||||
followed by '-real' or '-virtual'
|
||||
\* a special value: all, all-major, native
|
||||
|
||||
Call Stack \(most recent call first\):
|
||||
architectures-invalid\.cmake:2 \(enable_language\)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
^(CMake Warning in [^
|
||||
]*/Tests/RunCMake/CUDA_architectures/architectures-suffix-build/CMakeFiles/CMakeTmp/CMakeLists.txt:
|
||||
Clang doesn't support disabling CUDA real code generation.
|
||||
*)*$
|
||||
@@ -0,0 +1,4 @@
|
||||
-- CMAKE_CUDA_ARCHITECTURES='[0-9]+-real;[0-9]+-virtual;'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL='[0-9;]+'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='[0-9;]+'
|
||||
-- CMAKE_CUDA_ARCHITECTURES_NATIVE='[0-9;]+'
|
||||
@@ -0,0 +1,6 @@
|
||||
set(CMAKE_CUDA_ARCHITECTURES "${arch}-real;${arch}-virtual;")
|
||||
enable_language(CUDA)
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES='${CMAKE_CUDA_ARCHITECTURES}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL='${CMAKE_CUDA_ARCHITECTURES_ALL}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR='${CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR}'")
|
||||
message(STATUS "CMAKE_CUDA_ARCHITECTURES_NATIVE='${CMAKE_CUDA_ARCHITECTURES_NATIVE}'")
|
||||
Reference in New Issue
Block a user