summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Help/release/3.25.rst6
-rw-r--r--Modules/Compiler/NVIDIA-CUDA.cmake12
-rw-r--r--Modules/FindCUDAToolkit.cmake17
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Tests/Cuda/Toolkit/CMakeLists.txt3
-rw-r--r--Tests/CudaOnly/Toolkit/CMakeLists.txt4
6 files changed, 43 insertions, 1 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 34dd09a..0823954 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")
diff --git a/Modules/FindCUDAToolkit.cmake b/Modules/FindCUDAToolkit.cmake
index 5df31da..f104bfc 100644
--- a/Modules/FindCUDAToolkit.cmake
+++ b/Modules/FindCUDAToolkit.cmake
@@ -380,6 +380,18 @@ Targets Created:
- ``CUDA::nvrtc``
+.. _`cuda_toolkit_nvjitlink`:
+
+nvJitLink
+"""""""""
+
+The `nvJItLink <https://docs.nvidia.com/cuda/>`_ (Runtime LTO Linking) library.
+
+Targets Created:
+
+- ``CUDA::nvJitLink`` starting in CUDA 12.0
+- ``CUDA::nvJitLink_static`` starting in CUDA 12.0
+
.. _`cuda_toolkit_nvml`:
nvidia-ML
@@ -1094,6 +1106,11 @@ if(CUDAToolkit_FOUND)
endif()
endif()
+ if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 12.0.0)
+ _CUDAToolkit_find_and_add_import_lib(nvJitLink DEPS cuda_driver)
+ _CUDAToolkit_find_and_add_import_lib(nvJitLink_static DEPS cuda_driver)
+ endif()
+
_CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml)
if(WIN32)
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index a244329..b7bd660 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 25)
-set(CMake_VERSION_PATCH 20221210)
+set(CMake_VERSION_PATCH 20221214)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
diff --git a/Tests/Cuda/Toolkit/CMakeLists.txt b/Tests/Cuda/Toolkit/CMakeLists.txt
index e6b298d..b67aa32 100644
--- a/Tests/Cuda/Toolkit/CMakeLists.txt
+++ b/Tests/Cuda/Toolkit/CMakeLists.txt
@@ -22,6 +22,9 @@ set(cuda_libs cudart cuda_driver cublas cufft cufftw curand cusolver cusparse)
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.1)
list(APPEND cuda_libs cublasLt)
endif()
+if(CUDAToolkit_VERSION_MAJOR VERSION_GREATER 11)
+ list(APPEND cuda_libs nvJitLink)
+endif()
if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11)
list(APPEND cuda_libs nvgraph)
endif()
diff --git a/Tests/CudaOnly/Toolkit/CMakeLists.txt b/Tests/CudaOnly/Toolkit/CMakeLists.txt
index ddf940b..e0801a3 100644
--- a/Tests/CudaOnly/Toolkit/CMakeLists.txt
+++ b/Tests/CudaOnly/Toolkit/CMakeLists.txt
@@ -20,10 +20,14 @@ set(cuda_libs cudart cuda_driver cublas cufft cufftw curand cusolver cusparse)
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.1)
list(APPEND cuda_libs cublasLt)
endif()
+if(CUDAToolkit_VERSION_MAJOR VERSION_GREATER 11)
+ list(APPEND cuda_libs nvJitLink)
+endif()
if(CUDAToolkit_VERSION_MAJOR VERSION_LESS 11)
list(APPEND cuda_libs nvgraph)
endif()
+
# Verify that all the CUDA:: targets and variables exist
foreach (cuda_lib IN LISTS cuda_libs)
if(NOT CUDA_${cuda_lib}_LIBRARY)