CMAKE_CUDA_HOST_COMPILER_ID & VERSION Missing
Hi,
we try to enforce that CUDA host compiler and usual C++ compiler match. Just comparing CMAKE_CXX_COMPILER
and CMAKE_CUDA_HOST_COMPILER
can lead to false negatives of the form /usr/bin/g++-8
and /usr/bin/c++
.
So I thought about the following:
if(CMAKE_CUDA_HOST_COMPILER)
set(_CXX_CUDAHOSTCXX_SAME TRUE)
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "${CMAKE_CUDA_HOST_COMPILER_ID}")
if(NOT "${CMAKE_CXX_COMPILER_VERSION}" STREQUAL "${CMAKE_CUDA_HOST_COMPILER_VERSION}")
set(_CXX_CUDAHOSTCXX_SAME FALSE)
endif()
else()
set(_CXX_CUDAHOSTCXX_SAME FALSE)
endif()
if(NOT _CXX_CUDAHOSTCXX_SAME)
message(FATAL_ERROR "User-defined CUDA host compiler ("
"${CMAKE_CUDA_HOST_COMPILER_ID}@${CMAKE_CUDA_HOST_COMPILER_VERSION}) "
"does not match C++ compiler ("
"${CMAKE_CXX_COMPILER_ID}@${CMAKE_CXX_COMPILER_VERSION})! "
"Consider exporting the CXX and CUDAHOSTCXX environment variables.")
endif()
endif()
unset(_CXX_CUDAHOSTCXX_SAME)
endif()
but CMAKE_CUDA_HOST_COMPILER_ID
and CMAKE_CUDA_HOST_COMPILER_VERSION
are missing.
Edited by Axel Huebl