summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-04-08 11:46:08 (GMT)
committerKitware Robot <kwrobot@kitware.com>2021-04-08 11:46:14 (GMT)
commit6d27dd3d989556963008bf04f4dbf2cc5e594d86 (patch)
tree8171951d44d3132814d5b3640fe18f36bc0041e3 /Modules
parentd6a0b24d1011e6f9559c6a8ba1263fa2794fbfb8 (diff)
parent8e38985db7cb2c66f7fe74919e03e3f3ae0d0c41 (diff)
downloadCMake-6d27dd3d989556963008bf04f4dbf2cc5e594d86.zip
CMake-6d27dd3d989556963008bf04f4dbf2cc5e594d86.tar.gz
CMake-6d27dd3d989556963008bf04f4dbf2cc5e594d86.tar.bz2
Merge topic 'cuda-depfile-ccbin' into release-3.20
8e38985db7 Makefiles: Fix dependency extraction with CUDA < 10.2 and host compiler Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Raul Tambre <raul@tambre.ee> Acked-by: Robert Maynard <robertjmaynard@gmail.com> Merge-request: !5992
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CMakeCUDAInformation.cmake3
-rw-r--r--Modules/Compiler/NVIDIA-CUDA.cmake10
2 files changed, 12 insertions, 1 deletions
diff --git a/Modules/CMakeCUDAInformation.cmake b/Modules/CMakeCUDAInformation.cmake
index cb03ef4..5fd54c1 100644
--- a/Modules/CMakeCUDAInformation.cmake
+++ b/Modules/CMakeCUDAInformation.cmake
@@ -111,6 +111,9 @@ include(CMakeCommonLanguageInclude)
# CMAKE_CUDA_LINK_EXECUTABLE
if(CMAKE_CUDA_HOST_COMPILER AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
+ # FIXME: This is too late for the Platform/Windows-NVIDIA-CUDA module to
+ # see it, so we do not support CMAKE_CUDA_HOST_COMPILER on Windows.
+ # Move this to Compiler/NVIDIA-CUDA and update the VS generator too.
string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
endif()
diff --git a/Modules/Compiler/NVIDIA-CUDA.cmake b/Modules/Compiler/NVIDIA-CUDA.cmake
index eb80675..a0f7c05 100644
--- a/Modules/Compiler/NVIDIA-CUDA.cmake
+++ b/Modules/Compiler/NVIDIA-CUDA.cmake
@@ -30,7 +30,15 @@ if (CMAKE_CUDA_COMPILER_VERSION VERSION_GREATER_EQUAL 10.2.89)
# 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>")
+ if(CMAKE_CUDA_HOST_COMPILER AND NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ # FIXME: Move the main -ccbin= flag from CMakeCUDAInformation to
+ # a block above, remove this copy, and update the VS generator too.
+ set(_CMAKE_CUDA_EXTRA_FLAGS_LOCAL " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
+ else()
+ set(_CMAKE_CUDA_EXTRA_FLAGS_LOCAL "")
+ endif()
+ set(CMAKE_CUDA_DEPENDS_EXTRA_COMMANDS "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS}${_CMAKE_CUDA_EXTRA_FLAGS_LOCAL} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o <DEP_FILE>")
+ unset(_CMAKE_CUDA_EXTRA_FLAGS_LOCAL)
endif()
set(CMAKE_CUDA_DEPFILE_FORMAT gcc)
if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)