Files
CMake/Help/variable/CMAKE_CUDA_HOST_COMPILER.rst
Brad King 7968d9d442 Help: Document CMAKE_CUDA_HOST_COMPILER as specific to NVIDIA nvcc
Explain the purpose of this variable and the conditions under which
it can be set.  Point out that it should not be set explicitly without
also setting `CMAKE_CUDA_COMPILER` explicitly.

Issue: #20826
2020-07-14 15:22:54 -04:00

26 lines
1.1 KiB
ReStructuredText

CMAKE_CUDA_HOST_COMPILER
------------------------
.. versionadded:: 3.10
When :variable:`CMAKE_CUDA_COMPILER <CMAKE_<LANG>_COMPILER>` is set to
NVIDIA ``nvcc``, ``CMAKE_CUDA_HOST_COMPILER`` selects the compiler
executable to use when compiling host code for ``CUDA`` language files.
This maps to the ``nvcc -ccbin`` option.
The ``CMAKE_CUDA_HOST_COMPILER`` variable may be set explicitly before CUDA is
first enabled by a :command:`project` or :command:`enable_language` command.
This can be done via ``-DCMAKE_CUDA_HOST_COMPILER=...`` on the command line
or in a :ref:`toolchain file <Cross Compiling Toolchain>`. Or, one may set
the :envvar:`CUDAHOSTCXX` environment variable to provide a default value.
Once the CUDA language is enabled, the ``CMAKE_CUDA_HOST_COMPILER`` variable
is read-only and changes to it are undefined behavior.
.. note::
Since ``CMAKE_CUDA_HOST_COMPILER`` is meaningful only when the
``CMAKE_CUDA_COMPILER`` is ``nvcc``, it does not make sense to
set ``CMAKE_CUDA_HOST_COMPILER`` explicitly without also setting
``CMAKE_CUDA_COMPILER`` explicitly to be sure it is ``nvcc``.