mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-23 22:58:37 -05:00
cmGeneratorExpressionEvaluator: Short-circuit boolean operators
This commit is contained in:
@@ -195,6 +195,12 @@ Two forms of conditional generator expressions are supported:
|
||||
if ``condition`` is ``0``. Any other value for ``condition`` results in an
|
||||
error.
|
||||
|
||||
.. versionadded:: 3.28
|
||||
|
||||
This generator expression short-circuits such that generator expressions in
|
||||
``false_string`` will not evaluate when ``condition`` is ``1``, and generator
|
||||
expressions in ``true_string`` will not evaluate when condition is ``0``.
|
||||
|
||||
Typically, the ``condition`` is itself a generator expression. For instance,
|
||||
the following expression expands to ``DEBUG_MODE`` when the ``Debug``
|
||||
configuration is used, and the empty string for all other configurations:
|
||||
@@ -252,6 +258,11 @@ The common boolean logic operators are supported:
|
||||
``condition`` must be ``0`` or ``1``. The result of the expression is
|
||||
``0`` if ``condition`` is ``1``, else ``1``.
|
||||
|
||||
.. versionadded:: 3.28
|
||||
|
||||
Logical operators short-circuit such that generator expressions in the
|
||||
arguments list will not be evaluated once a return value can be determined.
|
||||
|
||||
.. _`Comparison Expressions`:
|
||||
|
||||
Primary Comparison Expressions
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
genexp-no-eval
|
||||
--------------
|
||||
|
||||
* :manual:`generator expressions <cmake-generator-expressions(7)>`
|
||||
short-circuit to avoid unnecessary evaluation of parameters.
|
||||
Reference in New Issue
Block a user