From 2da36984475678858885ab35c2711726c710f4e1 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Wed, 4 Apr 2018 15:07:16 -0400 Subject: FindCUDA: Add support for clcache When `CMAKE_C_COMPILER` is `clcache`, pass plain `cl` as the host compiler to `nvcc`. Otherwise, `nvcc` does not accept it. Signed-off-by: Edward Z. Yang --- Modules/FindCUDA.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake index 6f6f349..a0e4aa9 100644 --- a/Modules/FindCUDA.cmake +++ b/Modules/FindCUDA.cmake @@ -557,6 +557,11 @@ else() set(c_compiler_realpath "") endif() set(CUDA_HOST_COMPILER "${c_compiler_realpath}" CACHE FILEPATH "Host side compiler used by NVCC") + elseif(MSVC AND "${CMAKE_C_COMPILER}" MATCHES "clcache") + # NVCC does not think it will work if it is passed clcache.exe as the host + # compiler, which means that builds with CC=cl.exe won't work. Best to just + # feed it whatever the actual cl.exe is as the host compiler. + set(CUDA_HOST_COMPILER "cl.exe" CACHE FILEPATH "Host side compiler used by NVCC") else() set(CUDA_HOST_COMPILER "${CMAKE_C_COMPILER}" CACHE FILEPATH "Host side compiler used by NVCC") -- cgit v0.12