summaryrefslogtreecommitdiffstats
path: root/Help/variable/CMAKE_LANG_HOST_COMPILER.rst
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-09-25 19:59:20 (GMT)
committerBrad King <brad.king@kitware.com>2023-09-25 20:06:30 (GMT)
commit8124950f6ca7d5f5157e48bf3e881115c23bb224 (patch)
treeac00716a6a9675d9621bfbd3d3df2d3261faf707 /Help/variable/CMAKE_LANG_HOST_COMPILER.rst
parent9575e6f57bf21244d48aaf041bb0c975c8dbcd49 (diff)
downloadCMake-8124950f6ca7d5f5157e48bf3e881115c23bb224.zip
CMake-8124950f6ca7d5f5157e48bf3e881115c23bb224.tar.gz
CMake-8124950f6ca7d5f5157e48bf3e881115c23bb224.tar.bz2
CUDA: Generalize CMAKE_{CUDA => <LANG>}_HOST_COMPILER variable docs
Diffstat (limited to 'Help/variable/CMAKE_LANG_HOST_COMPILER.rst')
-rw-r--r--Help/variable/CMAKE_LANG_HOST_COMPILER.rst41
1 files changed, 41 insertions, 0 deletions
diff --git a/Help/variable/CMAKE_LANG_HOST_COMPILER.rst b/Help/variable/CMAKE_LANG_HOST_COMPILER.rst
new file mode 100644
index 0000000..2759784
--- /dev/null
+++ b/Help/variable/CMAKE_LANG_HOST_COMPILER.rst
@@ -0,0 +1,41 @@
+CMAKE_<LANG>_HOST_COMPILER
+--------------------------
+
+.. versionadded:: 3.10
+ ``CMAKE_CUDA_HOST_COMPILER``
+
+This variable is available when ``<LANG>`` is ``CUDA``.
+
+When :variable:`CMAKE_<LANG>_COMPILER_ID` is
+``NVIDIA``, ``CMAKE_<LANG>_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_<LANG>_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_<LANG>_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_<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
+ :variable:`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
+ :variable:`CMAKE_CXX_COMPILER <CMAKE_<LANG>_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 :ref:`Visual Studio Generators`.