diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2022-06-27 14:47:02 (GMT) |
---|---|---|
committer | Robert Maynard <rmaynard@nvidia.com> | 2022-08-18 14:37:06 (GMT) |
commit | ea659b155ddcdfb24e93b0d664e1cb67fef6d8a4 (patch) | |
tree | 756316d4a11b4c9880f21218070e7dc7b6dbfdd9 /Tests/CudaOnly | |
parent | 9ce5018be9f8ffd2bcfda00b9c1b81d3401e20ba (diff) | |
download | CMake-ea659b155ddcdfb24e93b0d664e1cb67fef6d8a4.zip CMake-ea659b155ddcdfb24e93b0d664e1cb67fef6d8a4.tar.gz CMake-ea659b155ddcdfb24e93b0d664e1cb67fef6d8a4.tar.bz2 |
CUDA: Always mark cuda toolkit as system include
Fixes: #23731
Diffstat (limited to 'Tests/CudaOnly')
-rw-r--r-- | Tests/CudaOnly/CMakeLists.txt | 6 | ||||
-rw-r--r-- | Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt | 7 | ||||
-rw-r--r-- | Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h | 5 | ||||
-rw-r--r-- | Tests/CudaOnly/ToolkitIsSystemInclude/main.cu | 4 |
4 files changed, 20 insertions, 2 deletions
diff --git a/Tests/CudaOnly/CMakeLists.txt b/Tests/CudaOnly/CMakeLists.txt index 091872d..d23e929 100644 --- a/Tests/CudaOnly/CMakeLists.txt +++ b/Tests/CudaOnly/CMakeLists.txt @@ -27,10 +27,12 @@ if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang") add_cuda_test_macro(CudaOnly.GPUDebugFlag CudaOnlyGPUDebugFlag) endif() -# The CUDA only ships the shared version of the toolkit libraries -# on windows if(NOT WIN32) + # The CUDA only ships the shared version of the toolkit libraries + # on windows add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit) + # `isystem` behaves differently on windows with nvcc + add_cuda_test_macro(CudaOnly.ToolkitIsSystemInclude CudaOnlySystemInclude) endif() add_cuda_test_macro(CudaOnly.DeviceLTO CudaOnlyDeviceLTO) diff --git a/Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt b/Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt new file mode 100644 index 0000000..bc347dd --- /dev/null +++ b/Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.24) +project(ToolkitIsSystemInclude CUDA) + +# Verify that the nvrtc.h that is inside `CMAKE_CURRENT_SOURCE_DIR` is still +# the first include for `.cu` files. +add_executable(CudaOnlySystemInclude main.cu) +target_include_directories(CudaOnlySystemInclude SYSTEM PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h b/Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h new file mode 100644 index 0000000..5a015c4 --- /dev/null +++ b/Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h @@ -0,0 +1,5 @@ +#define CMAKE_CUDA_TOOLKIT_IS_SYSTEM 1 + +int main() +{ +} diff --git a/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu b/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu new file mode 100644 index 0000000..6cff8a1 --- /dev/null +++ b/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu @@ -0,0 +1,4 @@ +#include "nvrtc.h" +#ifndef CMAKE_CUDA_TOOLKIT_IS_SYSTEM +# error "Failed to specify the CUDA Toolkit includes as system" +#endif |