summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-04-19 14:42:23 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-04-19 14:45:41 (GMT)
commit334efdebb8c69e6327fecb42ed1ae3cfcdb1cad6 (patch)
tree3c9efe45eb0c1c24f7a6975736c9fff66c21403b /Help
parentc79e7e09a83cb6cd8bfde600ce492f0429236a02 (diff)
parenteb08e1febba1cdc71bea2aee6431b5ed8f711af2 (diff)
downloadCMake-334efdebb8c69e6327fecb42ed1ae3cfcdb1cad6.zip
CMake-334efdebb8c69e6327fecb42ed1ae3cfcdb1cad6.tar.gz
CMake-334efdebb8c69e6327fecb42ed1ae3cfcdb1cad6.tar.bz2
Merge topic 'doc-CMAKE_MATCH_n'
eb08e1fe Help: Document CMAKE_MATCH_<n> variables 8dd99752 Help: Link from if(MATCHES) to regex specification docs a0091a69 Help: Format string() command regex specification docs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !719
Diffstat (limited to 'Help')
-rw-r--r--Help/command/if.rst3
-rw-r--r--Help/command/string.rst52
-rw-r--r--Help/manual/cmake-variables.7.rst1
-rw-r--r--Help/variable/CMAKE_MATCH_COUNT.rst7
-rw-r--r--Help/variable/CMAKE_MATCH_n.rst10
5 files changed, 49 insertions, 24 deletions
diff --git a/Help/command/if.rst b/Help/command/if.rst
index 2a087d0..edd343d 100644
--- a/Help/command/if.rst
+++ b/Help/command/if.rst
@@ -103,7 +103,8 @@ Possible expressions are:
``if(<variable|string> MATCHES regex)``
True if the given string or variable's value matches the given regular
- expression.
+ expression. See :ref:`Regex Specification` for regex format.
+ ``()`` groups are captured in :variable:`CMAKE_MATCH_<n>` variables.
``if(<variable|string> LESS <variable|string>)``
True if the given string or variable's value is a valid number and less
diff --git a/Help/command/string.rst b/Help/command/string.rst
index 698a91d..4f0c45c 100644
--- a/Help/command/string.rst
+++ b/Help/command/string.rst
@@ -77,31 +77,43 @@ The replace expression may refer to paren-delimited subexpressions of the
match using ``\1``, ``\2``, ..., ``\9``. Note that two backslashes (``\\1``)
are required in CMake code to get a backslash through argument parsing.
+.. _`Regex Specification`:
+
Regex Specification
"""""""""""""""""""
The following characters have special meaning in regular expressions:
-::
-
- ^ Matches at beginning of input
- $ Matches at end of input
- . Matches any single character
- [ ] Matches any character(s) inside the brackets
- [^ ] Matches any character(s) not inside the brackets
- - Inside brackets, specifies an inclusive range between
- characters on either side e.g. [a-f] is [abcdef]
- To match a literal - using brackets, make it the first
- or the last character e.g. [+*/-] matches basic
- mathematical operators.
- * Matches preceding pattern zero or more times
- + Matches preceding pattern one or more times
- ? Matches preceding pattern zero or once only
- | Matches a pattern on either side of the |
- () Saves a matched subexpression, which can be referenced
- in the REGEX REPLACE operation. Additionally it is saved
- by all regular expression-related commands, including
- e.g. if( MATCHES ), in the variables CMAKE_MATCH_(0..9).
+``^``
+ Matches at beginning of input
+``$``
+ Matches at end of input
+``.``
+ Matches any single character
+``[ ]``
+ Matches any character(s) inside the brackets
+``[^ ]``
+ Matches any character(s) not inside the brackets
+``-``
+ Inside brackets, specifies an inclusive range between
+ characters on either side e.g. ``[a-f]`` is ``[abcdef]``
+ To match a literal ``-`` using brackets, make it the first
+ or the last character e.g. ``[+*/-]`` matches basic
+ mathematical operators.
+``*``
+ Matches preceding pattern zero or more times
+``+``
+ Matches preceding pattern one or more times
+``?``
+ Matches preceding pattern zero or once only
+``|``
+ Matches a pattern on either side of the ``|``
+``()``
+ Saves a matched subexpression, which can be referenced
+ in the ``REGEX REPLACE`` operation. Additionally it is saved
+ by all regular expression-related commands, including
+ e.g. :command:`if(MATCHES)`, in the variables
+ :variable:`CMAKE_MATCH_<n>` for ``<n>`` 0..9.
``*``, ``+`` and ``?`` have higher precedence than concatenation. ``|``
has lower precedence than concatenation. This means that the regular
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 7347bcc..4317f67 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -56,6 +56,7 @@ Variables that Provide Information
/variable/CMAKE_MAJOR_VERSION
/variable/CMAKE_MAKE_PROGRAM
/variable/CMAKE_MATCH_COUNT
+ /variable/CMAKE_MATCH_n
/variable/CMAKE_MINIMUM_REQUIRED_VERSION
/variable/CMAKE_MINOR_VERSION
/variable/CMAKE_PARENT_LIST_FILE
diff --git a/Help/variable/CMAKE_MATCH_COUNT.rst b/Help/variable/CMAKE_MATCH_COUNT.rst
index 8b1c036..355e834 100644
--- a/Help/variable/CMAKE_MATCH_COUNT.rst
+++ b/Help/variable/CMAKE_MATCH_COUNT.rst
@@ -3,6 +3,7 @@ CMAKE_MATCH_COUNT
The number of matches with the last regular expression.
-When a regular expression match is used, CMake fills in ``CMAKE_MATCH_<n>``
-variables with the match contents. The ``CMAKE_MATCH_COUNT`` variable holds
-the number of match expressions when these are filled.
+When a regular expression match is used, CMake fills in
+:variable:`CMAKE_MATCH_<n>` variables with the match contents.
+The ``CMAKE_MATCH_COUNT`` variable holds the number of match
+expressions when these are filled.
diff --git a/Help/variable/CMAKE_MATCH_n.rst b/Help/variable/CMAKE_MATCH_n.rst
new file mode 100644
index 0000000..c7dd623
--- /dev/null
+++ b/Help/variable/CMAKE_MATCH_n.rst
@@ -0,0 +1,10 @@
+CMAKE_MATCH_<n>
+---------------
+
+Capture group ``<n>`` matched by the last regular expression, for groups
+0 through 9. Group 0 is the entire match. Groups 1 through 9 are the
+subexpressions captured by ``()`` syntax.
+
+When a regular expression match is used, CMake fills in ``CMAKE_MATCH_<n>``
+variables with the match contents. The :variable:`CMAKE_MATCH_COUNT`
+variable holds the number of match expressions when these are filled.