mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-27 01:19:31 -05:00
CUDA: Revert "Always mark cuda toolkit as system include"
We need to revert this change as it can disable error messages
when compiling invalid CUDA code.
This reverts commit ea659b155d (CUDA: Always mark cuda toolkit as system
include, 2022-06-27, v3.25.0-rc1~269^2).
This commit is contained in:
committed by
Brad King
parent
20bfbf7838
commit
d0e52219eb
@@ -127,8 +127,10 @@ list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES ${CMAKE_CUDA_IMPLICIT_LINK_L
|
|||||||
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
||||||
# Remove the CUDA Toolkit include directories from the set of
|
# Remove the CUDA Toolkit include directories from the set of
|
||||||
# implicit system include directories.
|
# implicit system include directories.
|
||||||
# CMake will explicitly mark these as SYSTEM to NVCC since it implicitly
|
# This resolves the issue that NVCC doesn't specify these
|
||||||
# adds them as user includes and not system
|
# 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)
|
if(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES)
|
||||||
list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
|
list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES
|
||||||
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
|
${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}
|
||||||
|
|||||||
@@ -1855,15 +1855,6 @@ void cmGlobalGenerator::FinalizeTargetConfiguration()
|
|||||||
cmExpandedList(standardIncludesStr);
|
cmExpandedList(standardIncludesStr);
|
||||||
standardIncludesSet.insert(standardIncludesVec.begin(),
|
standardIncludesSet.insert(standardIncludesVec.begin(),
|
||||||
standardIncludesVec.end());
|
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);
|
mf->AddSystemIncludeDirectories(standardIncludesSet);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,12 +27,10 @@ if(CMake_TEST_CUDA AND NOT CMake_TEST_CUDA STREQUAL "Clang")
|
|||||||
add_cuda_test_macro(CudaOnly.GPUDebugFlag CudaOnlyGPUDebugFlag)
|
add_cuda_test_macro(CudaOnly.GPUDebugFlag CudaOnlyGPUDebugFlag)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# The CUDA only ships the shared version of the toolkit libraries
|
||||||
|
# on windows
|
||||||
if(NOT WIN32)
|
if(NOT WIN32)
|
||||||
# The CUDA only ships the shared version of the toolkit libraries
|
|
||||||
# on windows
|
|
||||||
add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit)
|
add_cuda_test_macro(CudaOnly.StaticRuntimePlusToolkit CudaOnlyStaticRuntimePlusToolkit)
|
||||||
# `isystem` behaves differently on windows with nvcc
|
|
||||||
add_cuda_test_macro(CudaOnly.ToolkitIsSystemInclude CudaOnlySystemInclude)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_cuda_test_macro(CudaOnly.DeviceLTO CudaOnlyDeviceLTO)
|
add_cuda_test_macro(CudaOnly.DeviceLTO CudaOnlyDeviceLTO)
|
||||||
|
|||||||
@@ -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)
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#define CMAKE_CUDA_TOOLKIT_IS_SYSTEM 1
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#include "nvrtc.h"
|
|
||||||
#ifndef CMAKE_CUDA_TOOLKIT_IS_SYSTEM
|
|
||||||
# error "Failed to specify the CUDA Toolkit includes as system"
|
|
||||||
#endif
|
|
||||||
Reference in New Issue
Block a user