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>
This commit is contained in:
Edward Z. Yang
2018-04-04 15:07:16 -04:00
committed by Brad King
parent 3201e4c156
commit 2da3698447

View File

@@ -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")