瀏覽代碼

CUDA: Remove toolkit include dirs from implicit include dirs only with NVIDIA

The special case added by commit 87df637078 (CUDA: Do not treat CUDA
toolkit include directories as implicit, 2020-02-02, v3.17.0-rc1~31^2)
breaks CMake's protections against changing the compiler's implicit
include directory order.  Do this only for the NVIDIA compiler where it
is needed as a workaround to another problem.  That compiler does not
put the host compiler's implicit include directories in `-I` paths so we
do not detect them as `CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES` anyway.
Brad King 5 年之前
父節點
當前提交
70be10cbf4
共有 1 個文件被更改,包括 12 次插入10 次删除
  1. 12 10
      Modules/CMakeTestCUDACompiler.cmake

+ 12 - 10
Modules/CMakeTestCUDACompiler.cmake

@@ -78,16 +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}
-      )
+  if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+    # 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()
   endif()
 
   # Re-configure to save learned information.