From 2da36984475678858885ab35c2711726c710f4e1 Mon Sep 17 00:00:00 2001
From: "Edward Z. Yang" <ezyang@fb.com>
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 <ezyang@fb.com>
---
 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