FindCUDA: Add support for sccache

When `CMAKE_C_COMPILER` is `sccache`, pass plain `cl` as the host
compiler to `nvcc`.  Otherwise, `nvcc` does not accept it.
This commit is contained in:
Will Feng
2018-05-07 14:34:32 -04:00
committed by Brad King
parent dd3e1a7372
commit 53ffff2277

View File

@@ -557,10 +557,10 @@ 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.
elseif(MSVC AND "${CMAKE_C_COMPILER}" MATCHES "clcache|sccache")
# NVCC does not think it will work if it is passed clcache.exe or sccache.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}"