mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-26 18:58:34 -06:00
Merge topic 'doc-if-basic-expressions'
294581a443Help: Be more explicit about the behavior of if(<string>)3a9695557dHelp: Explicitly state that if(ENV{some_var}) is always false Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6768
This commit is contained in:
@@ -56,12 +56,23 @@ Basic Expressions
|
||||
``NO``, ``FALSE``, ``N``, ``IGNORE``, ``NOTFOUND``, the empty string,
|
||||
or ends in the suffix ``-NOTFOUND``. Named boolean constants are
|
||||
case-insensitive. If the argument is not one of these specific
|
||||
constants, it is treated as a variable or string and the following
|
||||
signature is used.
|
||||
constants, it is treated as a variable or string (see `Variable Expansion`_
|
||||
further below) and one of the following two forms applies.
|
||||
|
||||
``if(<variable|string>)``
|
||||
``if(<variable>)``
|
||||
True if given a variable that is defined to a value that is not a false
|
||||
constant. False otherwise. (Note macro arguments are not variables.)
|
||||
constant. False otherwise, including if the variable is undefined.
|
||||
Note that macro arguments are not variables.
|
||||
Environment variables also cannot be tested this way, e.g.
|
||||
``if(ENV{some_var})`` will always evaluate to false.
|
||||
|
||||
``if(<string>)``
|
||||
A quoted string always evaluates to false unless:
|
||||
|
||||
* The string's value is one of the true constants, or
|
||||
* Policy :policy:`CMP0054` is not set to ``NEW`` and the string's value
|
||||
happens to be a variable name that is affected by :policy:`CMP0054`'s
|
||||
behavior.
|
||||
|
||||
Logic Operators
|
||||
"""""""""""""""
|
||||
|
||||
Reference in New Issue
Block a user