CMAKE_<LANG>_HOST_COMPILERΒΆ
Added in version 3.10: CMAKE_CUDA_HOST_COMPILER
Added in version 3.28: CMAKE_HIP_HOST_COMPILER
This variable is available when <LANG>
is CUDA
or HIP
.
When CMAKE_<LANG>_COMPILER_ID
is
NVIDIA
, CMAKE_<LANG>_HOST_COMPILER
selects the compiler executable
to use when compiling host code for CUDA
or HIP
language files.
This maps to the nvcc -ccbin
option.
The CMAKE_<LANG>_HOST_COMPILER
variable may be set explicitly before CUDA
or HIP is first enabled by a project()
or enable_language()
command.
This can be done via -DCMAKE_<LANG>_HOST_COMPILER=...
on the command line
or in a toolchain file. Or, one may set
the CUDAHOSTCXX
or HIPHOSTCXX
environment variable to
provide a default value.
Once the CUDA or HIP language is enabled, the CMAKE_<LANG>_HOST_COMPILER
variable is read-only and changes to it are undefined behavior.
Note
Since CMAKE_<LANG>_HOST_COMPILER
is meaningful only when the
CMAKE_<LANG>_COMPILER_ID
is NVIDIA
,
it does not make sense to set CMAKE_<LANG>_HOST_COMPILER
without also
setting CMAKE_<LANG>_COMPILER
to NVCC.
Note
Projects should not try to set CMAKE_<LANG>_HOST_COMPILER
to match
CMAKE_CXX_COMPILER
themselves.
It is the end-user's responsibility, not the project's, to ensure that
NVCC targets the same ABI as the C++ compiler.
Note
Ignored when using Visual Studio Generators.
See the CMAKE_<LANG>_HOST_COMPILER_ID
and
CMAKE_<LANG>_HOST_COMPILER_VERSION
variables for
information about the host compiler used by nvcc
, whether
by default or specified by CMAKE_<LANG>_HOST_COMPILER
.