Browse Source

Merge topic 'nvidia-cuda-ninja-deps'

8981e3e7cc NVIDIA-CUDA: rely on new capabilities for deps generation

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5566
Brad King 4 years ago
parent
commit
8bdde2b161
2 changed files with 3 additions and 19 deletions
  1. 0 15
      Modules/CMakeCUDAInformation.cmake
  2. 3 4
      Modules/Compiler/NVIDIA-CUDA.cmake

+ 0 - 15
Modules/CMakeCUDAInformation.cmake

@@ -154,21 +154,6 @@ if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
     "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c <SOURCE> -o <OBJECT>")
 endif()
 
-if(CMAKE_GENERATOR STREQUAL "Ninja" AND NOT CMAKE_DEPFILE_FLAGS_CUDA)
-  set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
-    "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
-  #The Ninja generator uses the make file dependency files to determine what
-  #files need to be recompiled. Unfortunately, nvcc < 10.2 doesn't support building
-  #a source file and generating the dependencies of said file in a single
-  #invocation. Instead we have to state that you need to chain two commands.
-  #
-  #The makefile generators uses the custom CMake dependency scanner, and thus
-  #it is exempt from this logic.
-  list(APPEND CMAKE_CUDA_COMPILE_PTX_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
-  list(APPEND CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
-  list(APPEND CMAKE_CUDA_COMPILE_WHOLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
-endif()
-
 # compile a cu file into an executable
 if(NOT CMAKE_CUDA_LINK_EXECUTABLE)
   set(CMAKE_CUDA_LINK_EXECUTABLE

+ 3 - 4
Modules/Compiler/NVIDIA-CUDA.cmake

@@ -29,13 +29,12 @@ if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
   # before that we had to invoke the compiler twice
   # to get header dependency information
   set(CMAKE_DEPFILE_FLAGS_CUDA "-MD -MT <DEP_TARGET> -MF <DEP_FILE>")
+else()
+  set(CMAKE_CUDA_DEPENDS_EXTRA_COMMANDS "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o <DEP_FILE>")
 endif()
+set(CMAKE_CUDA_DEPFILE_FORMAT gcc)
 if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
     AND CMAKE_GENERATOR MATCHES "Makefiles|WMake")
-  if (NOT CMAKE_DEPFILE_FLAGS_CUDA)
-    set(CMAKE_CUDA_DEPENDS_EXTRA_COMMANDS "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o <DEP_FILE>")
-  endif()
-  set(CMAKE_CUDA_DEPFILE_FORMAT gcc)
   set(CMAKE_CUDA_DEPENDS_USE_COMPILER TRUE)
 endif()