diff options
author | Brad King <brad.king@kitware.com> | 2022-12-14 13:58:29 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2022-12-14 13:58:54 (GMT) |
commit | 2d3ed58ceec216417d50d6cdf45120c218cdcf18 (patch) | |
tree | 9caf9d1cbd41783ecaece070cf924d69a60b0ef3 | |
parent | 6db3519c41e8d58401607be1020a9d4aab645c39 (diff) | |
parent | 0aeeb8160c8ef68a07f84de908578167d46c0935 (diff) | |
download | CMake-2d3ed58ceec216417d50d6cdf45120c218cdcf18.zip CMake-2d3ed58ceec216417d50d6cdf45120c218cdcf18.tar.gz CMake-2d3ed58ceec216417d50d6cdf45120c218cdcf18.tar.bz2 |
Merge topic 'cuda-nvcc-cuda20' into release-3.25
0aeeb8160c CUDA: Add support for cuda_std_20 for nvcc 12.0+
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8008
-rw-r--r-- | Help/release/3.25.rst | 6 | ||||
-rw-r--r-- | Modules/Compiler/NVIDIA-CUDA.cmake | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Help/release/3.25.rst b/Help/release/3.25.rst index fdf8a94..e76a308 100644 --- a/Help/release/3.25.rst +++ b/Help/release/3.25.rst @@ -246,3 +246,9 @@ Changes made since CMake 3.25.0 include the following. command no longer accepts ``.a`` file names. This behavior was added in CMake 3.25.0, but has been reverted due finding GNU-ABI libraries in cases we did not previously. + +3.25.2 +------ + +* CUDA language level 20 (corresponding to C++20) is now supported with + NVCC 12.0 and above. diff --git a/Modules/Compiler/NVIDIA-CUDA.cmake b/Modules/Compiler/NVIDIA-CUDA.cmake index c8dcd2a..670e0ca 100644 --- a/Modules/Compiler/NVIDIA-CUDA.cmake +++ b/Modules/Compiler/NVIDIA-CUDA.cmake @@ -119,6 +119,13 @@ if("x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC") endif() endif() + if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12.0) + if(CMAKE_CUDA_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.11.25505) + set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20") + set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20") + endif() + endif() + else() set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "") set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "") @@ -138,6 +145,11 @@ else() set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17") endif() + if (NOT CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 12.0) + set(CMAKE_CUDA20_STANDARD_COMPILE_OPTION "-std=c++20") + set(CMAKE_CUDA20_EXTENSION_COMPILE_OPTION "-std=c++20") + endif() + endif() if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL "9.0") |