Skip to content
Snippets Groups Projects
Commit 87df6370 authored by Robert Maynard's avatar Robert Maynard Committed by Brad King
Browse files

CUDA: Do not treat CUDA toolkit include directories as implicit

CMake properly detects the toolkit directories as implicit system
includes, but CUDA compilers don't add explicit `-isystem` markups to
these directories when compiling CUDA code.  Due to this limitation,
allow users to explicitly specify these directories as SYSTEM dirs.

Fixes: #16464, #19864
parent 3a732a7d
Branches
Tags
No related merge requests found
......@@ -78,6 +78,18 @@ else()
list(REMOVE_ITEM CMAKE_CUDA_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
list(REMOVE_ITEM CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES cudart cudart_static cudadevrt)
# Remove the CUDA Toolkit include directories from the set of
# implicit system include directories.
# 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}
)
endif()
# Re-configure to save learned information.
configure_file(
${CMAKE_ROOT}/Modules/CMakeCUDACompiler.cmake.in
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment