mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-03 04:40:18 -05:00
Merge topic 'more-highlighting'
14edbe7e7bHelp: Syntax highlighting for long strings in cmake-language.74f4d5a9b3aHelp: Apply syntax highlighting to cmake-generator-expressions.7 Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !2527
This commit is contained in:
@@ -31,7 +31,9 @@ Logical Expressions
|
||||
Logical expressions are used to create conditional output. The basic
|
||||
expressions are the ``0`` and ``1`` expressions. Because other logical
|
||||
expressions evaluate to either ``0`` or ``1``, they can be composed to
|
||||
create conditional output::
|
||||
create conditional output:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
$<$<CONFIG:Debug>:DEBUG_MODE>
|
||||
|
||||
@@ -151,14 +153,18 @@ Informational Expressions
|
||||
=========================
|
||||
|
||||
These expressions expand to some information. The information may be used
|
||||
directly, eg::
|
||||
directly, eg:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
include_directories(/usr/include/$<CXX_COMPILER_ID>/)
|
||||
|
||||
expands to ``/usr/include/GNU/`` or ``/usr/include/Clang/`` etc, depending on
|
||||
the Id of the compiler.
|
||||
|
||||
These expressions may also may be combined with logical expressions::
|
||||
These expressions may also may be combined with logical expressions:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
$<$<VERSION_LESS:$<CXX_COMPILER_VERSION>,4.2.0>:OLD_COMPILER>
|
||||
|
||||
@@ -246,18 +252,24 @@ Output Expressions
|
||||
|
||||
These expressions generate output, in some cases depending on an input. These
|
||||
expressions may be combined with other expressions for information or logical
|
||||
comparison::
|
||||
comparison:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
-I$<JOIN:$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>, -I>
|
||||
|
||||
generates a string of the entries in the :prop_tgt:`INCLUDE_DIRECTORIES` target
|
||||
property with each entry preceded by ``-I``. Note that a more-complete use
|
||||
in this situation would require first checking if the INCLUDE_DIRECTORIES
|
||||
property is non-empty::
|
||||
property is non-empty:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
$<$<BOOL:${prop}>:-I$<JOIN:${prop}, -I>>
|
||||
|
||||
where ``${prop}`` refers to a helper variable::
|
||||
where ``${prop}`` refers to a helper variable:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(prop "$<TARGET_PROPERTY:INCLUDE_DIRECTORIES>")
|
||||
|
||||
|
||||
@@ -257,27 +257,31 @@ invocation as exactly one argument.
|
||||
.. No code-block syntax highlighting in the following example
|
||||
(escape \" not supported by our cmake.py)
|
||||
|
||||
For example::
|
||||
For example:
|
||||
|
||||
message("This is a quoted argument containing multiple lines.
|
||||
This is always one argument even though it contains a ; character.
|
||||
Both \\-escape sequences and ${variable} references are evaluated.
|
||||
The text does not end on an escaped double-quote like \".
|
||||
It does end in an unescaped double quote.
|
||||
")
|
||||
.. code-block:: cmake
|
||||
|
||||
message("This is a quoted argument containing multiple lines.
|
||||
This is always one argument even though it contains a ; character.
|
||||
Both \\-escape sequences and ${variable} references are evaluated.
|
||||
The text does not end on an escaped double-quote like \".
|
||||
It does end in an unescaped double quote.
|
||||
")
|
||||
|
||||
.. No code-block syntax highlighting in the following example
|
||||
(for conformity with the two above examples)
|
||||
|
||||
The final ``\`` on any line ending in an odd number of backslashes
|
||||
is treated as a line continuation and ignored along with the
|
||||
immediately following newline character. For example::
|
||||
immediately following newline character. For example:
|
||||
|
||||
message("\
|
||||
This is the first line of a quoted argument. \
|
||||
In fact it is the only line but since it is long \
|
||||
the source code uses line continuation.\
|
||||
")
|
||||
.. code-block:: cmake
|
||||
|
||||
message("\
|
||||
This is the first line of a quoted argument. \
|
||||
In fact it is the only line but since it is long \
|
||||
the source code uses line continuation.\
|
||||
")
|
||||
|
||||
.. note::
|
||||
CMake versions prior to 3.0 do not support continuation with ``\``.
|
||||
|
||||
Reference in New Issue
Block a user