summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2021-11-07 10:31:53 (GMT)
committerCraig Scott <craig.scott@crascit.com>2021-11-07 21:17:04 (GMT)
commit84667a6f3c9331eee6737c88f42fb102f8cd33e3 (patch)
tree1679fce29eacd3065cbd93d9ddee4da837d4ae9e /Help
parentced697d2846abea4b320647a46213c6e130c9a8b (diff)
downloadCMake-84667a6f3c9331eee6737c88f42fb102f8cd33e3.zip
CMake-84667a6f3c9331eee6737c88f42fb102f8cd33e3.tar.gz
CMake-84667a6f3c9331eee6737c88f42fb102f8cd33e3.tar.bz2
Help: Clarify valid versus supported values for CUDA_STANDARD
CMake 3.18 added the first support for any compiler for 17 and 20, but those were recognized as valid values in earlier CMake versions even though there was no compiler that supported them. Make this distinction clear to avoid creating the impression that these standards could be usefully used before CMake 3.18. While 98 is recognized as a valid value, it also just gets treated as 03 internally. Document this behavior as well. Fixes: #22711
Diffstat (limited to 'Help')
-rw-r--r--Help/prop_tgt/CUDA_STANDARD.rst16
1 files changed, 11 insertions, 5 deletions
diff --git a/Help/prop_tgt/CUDA_STANDARD.rst b/Help/prop_tgt/CUDA_STANDARD.rst
index 5ef57be..950ba12 100644
--- a/Help/prop_tgt/CUDA_STANDARD.rst
+++ b/Help/prop_tgt/CUDA_STANDARD.rst
@@ -12,21 +12,27 @@ flag such as ``-std=gnu++11`` to the compile line.
Supported values are:
``98``
- CUDA C++98
+ CUDA C++98. Note that this maps to the same as ``03`` internally.
+
+``03``
+ CUDA C++03
``11``
CUDA C++11
``14``
- CUDA C++14
+ CUDA C++14. While CMake 3.8 and later *recognize* ``14`` as a valid value,
+ CMake 3.9 was the first version to include support for any compiler.
``17``
- CUDA C++17
+ CUDA C++17. While CMake 3.8 and later *recognize* ``17`` as a valid value,
+ CMake 3.18 was the first version to include support for any compiler.
``20``
.. versionadded:: 3.12
- CUDA C++20
+ CUDA C++20. While CMake 3.12 and later *recognize* ``20`` as a valid value,
+ CMake 3.18 was the first version to include support for any compiler.
``23``
.. versionadded:: 3.20
@@ -43,7 +49,7 @@ means that using:
with a compiler which does not support ``-std=gnu++11`` or an equivalent
flag will not result in an error or warning, but will instead add the
-``-std=gnu++98`` flag if supported. This "decay" behavior may be controlled
+``-std=gnu++03`` flag if supported. This "decay" behavior may be controlled
with the :prop_tgt:`CUDA_STANDARD_REQUIRED` target property.
Additionally, the :prop_tgt:`CUDA_EXTENSIONS` target property may be used to
control whether compiler-specific extensions are enabled on a per-target basis.