diff options
author | Elsie Hupp <9206310+elsiehupp@users.noreply.github.com> | 2021-03-14 21:35:20 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-03-15 13:15:08 (GMT) |
commit | c13f75982f784cc85f6c0a88c6efe917fe3b72c7 (patch) | |
tree | 6b038b855d7188d0a6ad6355d709f0ddc7591e66 /Help | |
parent | d4053aabce9c10a83dc3522a599ae12846689050 (diff) | |
download | CMake-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.rst | 26 |
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 |