mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-24 23:28:32 -05:00
Help: Indent 'if' command docs more consistently
This commit is contained in:
+100
-100
@@ -58,30 +58,30 @@ Basic Expressions
|
|||||||
"""""""""""""""""
|
"""""""""""""""""
|
||||||
|
|
||||||
``if(<constant>)``
|
``if(<constant>)``
|
||||||
True if the constant is ``1``, ``ON``, ``YES``, ``TRUE``, ``Y``,
|
True if the constant is ``1``, ``ON``, ``YES``, ``TRUE``, ``Y``,
|
||||||
or a non-zero number (including floating point numbers).
|
or a non-zero number (including floating point numbers).
|
||||||
False if the constant is ``0``, ``OFF``,
|
False if the constant is ``0``, ``OFF``,
|
||||||
``NO``, ``FALSE``, ``N``, ``IGNORE``, ``NOTFOUND``, the empty string,
|
``NO``, ``FALSE``, ``N``, ``IGNORE``, ``NOTFOUND``, the empty string,
|
||||||
or ends in the suffix ``-NOTFOUND``. Named boolean constants are
|
or ends in the suffix ``-NOTFOUND``. Named boolean constants are
|
||||||
case-insensitive. If the argument is not one of these specific
|
case-insensitive. If the argument is not one of these specific
|
||||||
constants, it is treated as a variable or string (see `Variable Expansion`_
|
constants, it is treated as a variable or string (see `Variable Expansion`_
|
||||||
further below) and one of the following two forms applies.
|
further below) and one of the following two forms applies.
|
||||||
|
|
||||||
``if(<variable>)``
|
``if(<variable>)``
|
||||||
True if given a variable that is defined to a value that is not a false
|
True if given a variable that is defined to a value that is not a false
|
||||||
constant. False otherwise, including if the variable is undefined.
|
constant. False otherwise, including if the variable is undefined.
|
||||||
Note that macro arguments are not variables.
|
Note that macro arguments are not variables.
|
||||||
:ref:`Environment Variables <CMake Language Environment Variables>` also
|
:ref:`Environment Variables <CMake Language Environment Variables>` also
|
||||||
cannot be tested this way, e.g. ``if(ENV{some_var})`` will always evaluate
|
cannot be tested this way, e.g. ``if(ENV{some_var})`` will always evaluate
|
||||||
to false.
|
to false.
|
||||||
|
|
||||||
``if(<string>)``
|
``if(<string>)``
|
||||||
A quoted string always evaluates to false unless:
|
A quoted string always evaluates to false unless:
|
||||||
|
|
||||||
* The string's value is one of the true constants, or
|
* The string's value is one of the true constants, or
|
||||||
* Policy :policy:`CMP0054` is not set to ``NEW`` and the string's value
|
* 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
|
happens to be a variable name that is affected by :policy:`CMP0054`'s
|
||||||
behavior.
|
behavior.
|
||||||
|
|
||||||
Logic Operators
|
Logic Operators
|
||||||
"""""""""""""""
|
"""""""""""""""
|
||||||
@@ -89,23 +89,23 @@ Logic Operators
|
|||||||
.. _NOT:
|
.. _NOT:
|
||||||
|
|
||||||
``if(NOT <condition>)``
|
``if(NOT <condition>)``
|
||||||
True if the condition is not true.
|
True if the condition is not true.
|
||||||
|
|
||||||
.. _AND:
|
.. _AND:
|
||||||
|
|
||||||
``if(<cond1> AND <cond2>)``
|
``if(<cond1> AND <cond2>)``
|
||||||
True if both conditions would be considered true individually.
|
True if both conditions would be considered true individually.
|
||||||
|
|
||||||
.. _OR:
|
.. _OR:
|
||||||
|
|
||||||
``if(<cond1> OR <cond2>)``
|
``if(<cond1> OR <cond2>)``
|
||||||
True if either condition would be considered true individually.
|
True if either condition would be considered true individually.
|
||||||
|
|
||||||
``if((condition) AND (condition OR (condition)))``
|
``if((condition) AND (condition OR (condition)))``
|
||||||
The conditions inside the parenthesis are evaluated first and then
|
The conditions inside the parenthesis are evaluated first and then
|
||||||
the remaining condition is evaluated as in the other examples.
|
the remaining condition is evaluated as in the other examples.
|
||||||
Where there are nested parenthesis the innermost are evaluated as part
|
Where there are nested parenthesis the innermost are evaluated as part
|
||||||
of evaluating the condition that contains them.
|
of evaluating the condition that contains them.
|
||||||
|
|
||||||
Existence Checks
|
Existence Checks
|
||||||
""""""""""""""""
|
""""""""""""""""
|
||||||
@@ -113,17 +113,17 @@ Existence Checks
|
|||||||
.. _COMMAND:
|
.. _COMMAND:
|
||||||
|
|
||||||
``if(COMMAND command-name)``
|
``if(COMMAND command-name)``
|
||||||
True if the given name is a command, macro or function that can be
|
True if the given name is a command, macro or function that can be
|
||||||
invoked.
|
invoked.
|
||||||
|
|
||||||
``if(POLICY policy-id)``
|
``if(POLICY policy-id)``
|
||||||
True if the given name is an existing policy (of the form ``CMP<NNNN>``).
|
True if the given name is an existing policy (of the form ``CMP<NNNN>``).
|
||||||
|
|
||||||
``if(TARGET target-name)``
|
``if(TARGET target-name)``
|
||||||
True if the given name is an existing logical target name created
|
True if the given name is an existing logical target name created
|
||||||
by a call to the :command:`add_executable`, :command:`add_library`,
|
by a call to the :command:`add_executable`, :command:`add_library`,
|
||||||
or :command:`add_custom_target` command that has already been invoked
|
or :command:`add_custom_target` command that has already been invoked
|
||||||
(in any directory).
|
(in any directory).
|
||||||
|
|
||||||
``if(TEST test-name)``
|
``if(TEST test-name)``
|
||||||
.. versionadded:: 3.3
|
.. versionadded:: 3.3
|
||||||
@@ -133,21 +133,21 @@ Existence Checks
|
|||||||
.. _DEFINED:
|
.. _DEFINED:
|
||||||
|
|
||||||
``if(DEFINED <name>|CACHE{<name>}|ENV{<name>})``
|
``if(DEFINED <name>|CACHE{<name>}|ENV{<name>})``
|
||||||
True if a variable, cache variable or environment variable
|
True if a variable, cache variable or environment variable
|
||||||
with given ``<name>`` is defined. The value of the variable
|
with given ``<name>`` is defined. The value of the variable
|
||||||
does not matter. Note the following caveats:
|
does not matter. Note the following caveats:
|
||||||
|
|
||||||
* Macro arguments are not variables.
|
* Macro arguments are not variables.
|
||||||
* It is not possible to test directly whether a `<name>` is a non-cache
|
* It is not possible to test directly whether a `<name>` is a non-cache
|
||||||
variable. The expression ``if(DEFINED someName)`` will evaluate to true
|
variable. The expression ``if(DEFINED someName)`` will evaluate to true
|
||||||
if either a cache or non-cache variable ``someName`` exists. In
|
if either a cache or non-cache variable ``someName`` exists. In
|
||||||
comparison, the expression ``if(DEFINED CACHE{someName})`` will only
|
comparison, the expression ``if(DEFINED CACHE{someName})`` will only
|
||||||
evaluate to true if a cache variable ``someName`` exists. Both expressions
|
evaluate to true if a cache variable ``someName`` exists. Both expressions
|
||||||
need to be tested if you need to know whether a non-cache variable exists:
|
need to be tested if you need to know whether a non-cache variable exists:
|
||||||
``if(DEFINED someName AND NOT DEFINED CACHE{someName})``.
|
``if(DEFINED someName AND NOT DEFINED CACHE{someName})``.
|
||||||
|
|
||||||
.. versionadded:: 3.14
|
.. versionadded:: 3.14
|
||||||
Added support for ``CACHE{<name>}`` variables.
|
Added support for ``CACHE{<name>}`` variables.
|
||||||
|
|
||||||
``if(<variable|string> IN_LIST <variable>)``
|
``if(<variable|string> IN_LIST <variable>)``
|
||||||
.. versionadded:: 3.3
|
.. versionadded:: 3.3
|
||||||
@@ -159,43 +159,43 @@ File Operations
|
|||||||
.. _EXISTS:
|
.. _EXISTS:
|
||||||
|
|
||||||
``if(EXISTS path-to-file-or-directory)``
|
``if(EXISTS path-to-file-or-directory)``
|
||||||
True if the named file or directory exists. Behavior is well-defined
|
True if the named file or directory exists. Behavior is well-defined
|
||||||
only for explicit full paths (a leading ``~/`` is not expanded as
|
only for explicit full paths (a leading ``~/`` is not expanded as
|
||||||
a home directory and is considered a relative path).
|
a home directory and is considered a relative path).
|
||||||
Resolves symbolic links, i.e. if the named file or directory is a
|
Resolves symbolic links, i.e. if the named file or directory is a
|
||||||
symbolic link, returns true if the target of the symbolic link exists.
|
symbolic link, returns true if the target of the symbolic link exists.
|
||||||
|
|
||||||
False if the given path is an empty string.
|
False if the given path is an empty string.
|
||||||
|
|
||||||
``if(file1 IS_NEWER_THAN file2)``
|
``if(file1 IS_NEWER_THAN file2)``
|
||||||
True if ``file1`` is newer than ``file2`` or if one of the two files doesn't
|
True if ``file1`` is newer than ``file2`` or if one of the two files doesn't
|
||||||
exist. Behavior is well-defined only for full paths. If the file
|
exist. Behavior is well-defined only for full paths. If the file
|
||||||
time stamps are exactly the same, an ``IS_NEWER_THAN`` comparison returns
|
time stamps are exactly the same, an ``IS_NEWER_THAN`` comparison returns
|
||||||
true, so that any dependent build operations will occur in the event
|
true, so that any dependent build operations will occur in the event
|
||||||
of a tie. This includes the case of passing the same file name for
|
of a tie. This includes the case of passing the same file name for
|
||||||
both file1 and file2.
|
both file1 and file2.
|
||||||
|
|
||||||
``if(IS_DIRECTORY path)``
|
``if(IS_DIRECTORY path)``
|
||||||
True if ``path`` is a directory. Behavior is well-defined only
|
True if ``path`` is a directory. Behavior is well-defined only
|
||||||
for full paths.
|
for full paths.
|
||||||
|
|
||||||
False if the given path is an empty string.
|
False if the given path is an empty string.
|
||||||
|
|
||||||
``if(IS_SYMLINK file-name)``
|
``if(IS_SYMLINK file-name)``
|
||||||
True if the given name is a symbolic link. Behavior is well-defined
|
True if the given name is a symbolic link. Behavior is well-defined
|
||||||
only for full paths.
|
only for full paths.
|
||||||
|
|
||||||
``if(IS_ABSOLUTE path)``
|
``if(IS_ABSOLUTE path)``
|
||||||
True if the given path is an absolute path. Note the following special
|
True if the given path is an absolute path. Note the following special
|
||||||
cases:
|
cases:
|
||||||
|
|
||||||
* An empty ``path`` evaluates to false.
|
* An empty ``path`` evaluates to false.
|
||||||
* On Windows hosts, any ``path`` that begins with a drive letter and colon
|
* On Windows hosts, any ``path`` that begins with a drive letter and colon
|
||||||
(e.g. ``C:``), a forward slash or a backslash will evaluate to true.
|
(e.g. ``C:``), a forward slash or a backslash will evaluate to true.
|
||||||
This means a path like ``C:no\base\dir`` will evaluate to true, even
|
This means a path like ``C:no\base\dir`` will evaluate to true, even
|
||||||
though the non-drive part of the path is relative.
|
though the non-drive part of the path is relative.
|
||||||
* On non-Windows hosts, any ``path`` that begins with a tilde (``~``)
|
* On non-Windows hosts, any ``path`` that begins with a tilde (``~``)
|
||||||
evaluates to true.
|
evaluates to true.
|
||||||
|
|
||||||
Comparisons
|
Comparisons
|
||||||
"""""""""""
|
"""""""""""
|
||||||
@@ -203,29 +203,29 @@ Comparisons
|
|||||||
.. _MATCHES:
|
.. _MATCHES:
|
||||||
|
|
||||||
``if(<variable|string> MATCHES regex)``
|
``if(<variable|string> MATCHES regex)``
|
||||||
True if the given string or variable's value matches the given regular
|
True if the given string or variable's value matches the given regular
|
||||||
expression. See :ref:`Regex Specification` for regex format.
|
expression. See :ref:`Regex Specification` for regex format.
|
||||||
|
|
||||||
.. versionadded:: 3.9
|
.. versionadded:: 3.9
|
||||||
``()`` groups are captured in :variable:`CMAKE_MATCH_<n>` variables.
|
``()`` groups are captured in :variable:`CMAKE_MATCH_<n>` variables.
|
||||||
|
|
||||||
.. _LESS:
|
.. _LESS:
|
||||||
|
|
||||||
``if(<variable|string> LESS <variable|string>)``
|
``if(<variable|string> LESS <variable|string>)``
|
||||||
True if the given string or variable's value is a valid number and less
|
True if the given string or variable's value is a valid number and less
|
||||||
than that on the right.
|
than that on the right.
|
||||||
|
|
||||||
.. _GREATER:
|
.. _GREATER:
|
||||||
|
|
||||||
``if(<variable|string> GREATER <variable|string>)``
|
``if(<variable|string> GREATER <variable|string>)``
|
||||||
True if the given string or variable's value is a valid number and greater
|
True if the given string or variable's value is a valid number and greater
|
||||||
than that on the right.
|
than that on the right.
|
||||||
|
|
||||||
.. _EQUAL:
|
.. _EQUAL:
|
||||||
|
|
||||||
``if(<variable|string> EQUAL <variable|string>)``
|
``if(<variable|string> EQUAL <variable|string>)``
|
||||||
True if the given string or variable's value is a valid number and equal
|
True if the given string or variable's value is a valid number and equal
|
||||||
to that on the right.
|
to that on the right.
|
||||||
|
|
||||||
.. _LESS_EQUAL:
|
.. _LESS_EQUAL:
|
||||||
|
|
||||||
@@ -244,20 +244,20 @@ Comparisons
|
|||||||
.. _STRLESS:
|
.. _STRLESS:
|
||||||
|
|
||||||
``if(<variable|string> STRLESS <variable|string>)``
|
``if(<variable|string> STRLESS <variable|string>)``
|
||||||
True if the given string or variable's value is lexicographically less
|
True if the given string or variable's value is lexicographically less
|
||||||
than the string or variable on the right.
|
than the string or variable on the right.
|
||||||
|
|
||||||
.. _STRGREATER:
|
.. _STRGREATER:
|
||||||
|
|
||||||
``if(<variable|string> STRGREATER <variable|string>)``
|
``if(<variable|string> STRGREATER <variable|string>)``
|
||||||
True if the given string or variable's value is lexicographically greater
|
True if the given string or variable's value is lexicographically greater
|
||||||
than the string or variable on the right.
|
than the string or variable on the right.
|
||||||
|
|
||||||
.. _STREQUAL:
|
.. _STREQUAL:
|
||||||
|
|
||||||
``if(<variable|string> STREQUAL <variable|string>)``
|
``if(<variable|string> STREQUAL <variable|string>)``
|
||||||
True if the given string or variable's value is lexicographically equal
|
True if the given string or variable's value is lexicographically equal
|
||||||
to the string or variable on the right.
|
to the string or variable on the right.
|
||||||
|
|
||||||
.. _STRLESS_EQUAL:
|
.. _STRLESS_EQUAL:
|
||||||
|
|
||||||
@@ -279,26 +279,26 @@ Version Comparisons
|
|||||||
.. _VERSION_LESS:
|
.. _VERSION_LESS:
|
||||||
|
|
||||||
``if(<variable|string> VERSION_LESS <variable|string>)``
|
``if(<variable|string> VERSION_LESS <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
||||||
Any non-integer version component or non-integer trailing part of a version
|
Any non-integer version component or non-integer trailing part of a version
|
||||||
component effectively truncates the string at that point.
|
component effectively truncates the string at that point.
|
||||||
|
|
||||||
.. _VERSION_GREATER:
|
.. _VERSION_GREATER:
|
||||||
|
|
||||||
``if(<variable|string> VERSION_GREATER <variable|string>)``
|
``if(<variable|string> VERSION_GREATER <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
||||||
Any non-integer version component or non-integer trailing part of a version
|
Any non-integer version component or non-integer trailing part of a version
|
||||||
component effectively truncates the string at that point.
|
component effectively truncates the string at that point.
|
||||||
|
|
||||||
.. _VERSION_EQUAL:
|
.. _VERSION_EQUAL:
|
||||||
|
|
||||||
``if(<variable|string> VERSION_EQUAL <variable|string>)``
|
``if(<variable|string> VERSION_EQUAL <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
``major[.minor[.patch[.tweak]]]``, omitted components are treated as zero).
|
||||||
Any non-integer version component or non-integer trailing part of a version
|
Any non-integer version component or non-integer trailing part of a version
|
||||||
component effectively truncates the string at that point.
|
component effectively truncates the string at that point.
|
||||||
|
|
||||||
.. _VERSION_LESS_EQUAL:
|
.. _VERSION_LESS_EQUAL:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user