summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Modules/CMakeTestCUDACompiler.cmake6
-rw-r--r--Source/cmGlobalGenerator.cxx9
-rw-r--r--Tests/CudaOnly/CMakeLists.txt6
-rw-r--r--Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt7
-rw-r--r--Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h5
-rw-r--r--Tests/CudaOnly/ToolkitIsSystemInclude/main.cu4
6 files changed, 6 insertions, 31 deletions
diff --git a/Modules/CMakeTestCUDACompiler.cmake b/Modules/CMakeTestCUDACompiler.cmake
index a89182b9dc..f2fa6ea908 100644
--- a/Modules/CMakeTestCUDACompiler.cmake
+++ b/Modules/CMakeTestCUDACompiler.cmake
@@ -127,8 +127,10 @@ list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_L
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
# Remove the CUDA Toolkit include directories from the set of
# implicit system include directories.
- # CMake will explicitly mark these as SYSTEM to NVCC since it implicitly
- # adds them as user includes and not system
+ # This resolves the issue that NVCC doesn't specify these
+ # includes as SYSTEM includes when compiling device code, and sometimes
+ # they contain headers that generate warnings, so let users mark them
+ # as SYSTEM explicitly
if(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index 6962b52c7c..c2bf888d10 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -1855,15 +1855,6 @@ void cmGlobalGenerator::FinalizeTargetConfiguration()
cmExpandedList(standardIncludesStr);
standardIncludesSet.insert(standardIncludesVec.begin(),
standardIncludesVec.end());
- if (li == "CUDA") {
- std::string const& cudaSystemIncludeVar =
- mf->GetSafeDefinition("CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES");
- std::vector<std::string> cudaToolkitIncludeVec =
- cmExpandedList(cudaSystemIncludeVar);
- standardIncludesSet.insert(cudaToolkitIncludeVec.begin(),
- cudaToolkitIncludeVec.end());
- mf->AddIncludeDirectories(cudaToolkitIncludeVec);
- }
}
mf->AddSystemIncludeDirectories(standardIncludesSet);
}
diff --git a/Tests/CudaOnly/CMakeLists.txt b/Tests/CudaOnly/CMakeLists.txt
index d23e9298a9..091872d3ce 100644
--- a/Tests/CudaOnly/CMakeLists.txt
+++ b/Tests/CudaOnly/CMakeLists.txt
@@ -27,12 +27,10 @@ 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
deleted file mode 100644
index bc347dda10..0000000000
--- a/Tests/CudaOnly/ToolkitIsSystemInclude/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-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
deleted file mode 100644
index 5a015c4d76..0000000000
--- a/Tests/CudaOnly/ToolkitIsSystemInclude/include/nvrtc.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#define CMAKE_CUDA_TOOLKIT_IS_SYSTEM 1
-
-int main()
-{
-}
diff --git a/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu b/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu
deleted file mode 100644
index 6cff8a1177..0000000000
--- a/Tests/CudaOnly/ToolkitIsSystemInclude/main.cu
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "nvrtc.h"
-#ifndef CMAKE_CUDA_TOOLKIT_IS_SYSTEM
-# error "Failed to specify the CUDA Toolkit includes as system"
-#endif