summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorElsie Hupp <9206310+elsiehupp@users.noreply.github.com>2021-03-14 21:35:20 (GMT)
committerBrad King <brad.king@kitware.com>2021-03-15 13:15:08 (GMT)
commitc13f75982f784cc85f6c0a88c6efe917fe3b72c7 (patch)
tree6b038b855d7188d0a6ad6355d709f0ddc7591e66 /Help
parentd4053aabce9c10a83dc3522a599ae12846689050 (diff)
downloadCMake-c13f75982f784cc85f6c0a88c6efe917fe3b72c7.zip
CMake-c13f75982f784cc85f6c0a88c6efe917fe3b72c7.tar.gz
CMake-c13f75982f784cc85f6c0a88c6efe917fe3b72c7.tar.bz2
Help: Clarify configure_file #cmakedefine01 syntax and behavior
Fixes: #21935
Diffstat (limited to 'Help')
-rw-r--r--Help/command/configure_file.rst26
1 files changed, 24 insertions, 2 deletions
diff --git a/Help/command/configure_file.rst b/Help/command/configure_file.rst
index 63ea84d..8f082e8 100644
--- a/Help/command/configure_file.rst
+++ b/Help/command/configure_file.rst
@@ -36,8 +36,30 @@ or
depending on whether ``VAR`` is set in CMake to any value not considered
a false constant by the :command:`if` command. The "..." content on the
line after the variable name, if any, is processed as above.
-Input file lines of the form ``#cmakedefine01 VAR`` will be replaced with
-either ``#define VAR 1`` or ``#define VAR 0`` similarly.
+
+Unlike lines of the form ``#cmakedefine VAR ...``, in lines of the form
+``#cmakedefine01 VAR``, ``VAR`` itself will expand to ``VAR 0`` or ``VAR 1``
+rather than being assigned the value ``...``. Therefore, input lines of the form
+
+.. code-block:: c
+
+ #cmakedefine01 VAR
+
+will be replaced with either
+
+.. code-block:: c
+
+ #define VAR 0
+
+or
+
+.. code-block:: c
+
+ #define VAR 1
+
+Input lines of the form ``#cmakedefine01 VAR ...`` will expand
+as ``#cmakedefine01 VAR ... 0`` or ``#cmakedefine01 VAR ... 0``,
+which may lead to undefined behavior.
.. versionadded:: 3.10
The result lines (with the exception of the ``#undef`` comments) can be