diff options
author | Brad King <brad.king@kitware.com> | 2024-01-11 15:07:37 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-01-11 15:07:48 (GMT) |
commit | c6d69d84dbdf3e2db70e6272a95d977c2c685ee2 (patch) | |
tree | b7ceaa5c1aa3dd8f101b7a7f1c5a3a9d8e7ec59d /Help | |
parent | 97713da65024c784cc759278e5a4ebc79a74f111 (diff) | |
parent | fa00928bcded97d20c9aa2813f68f1df41591125 (diff) | |
download | CMake-c6d69d84dbdf3e2db70e6272a95d977c2c685ee2.zip CMake-c6d69d84dbdf3e2db70e6272a95d977c2c685ee2.tar.gz CMake-c6d69d84dbdf3e2db70e6272a95d977c2c685ee2.tar.bz2 |
Merge topic 'file-strings-regex-match'
fa00928bcd file: `STRINGS` + `REGEX` store match results
ff0085cf74 Help: Drop incorrect versionadded mark from CMAKE_MATCH_<n>
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !9124
Diffstat (limited to 'Help')
-rw-r--r-- | Help/command/file.rst | 5 | ||||
-rw-r--r-- | Help/manual/cmake-policies.7.rst | 1 | ||||
-rw-r--r-- | Help/policy/CMP0159.rst | 24 | ||||
-rw-r--r-- | Help/variable/CMAKE_MATCH_n.rst | 2 |
4 files changed, 30 insertions, 2 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst index 957b8b5..4acdc7e 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -113,6 +113,11 @@ Reading Consider only strings that match the given regular expression, as described under :ref:`string(REGEX) <Regex Specification>`. + .. versionchanged:: 3.29 + Capture groups from the last match in the file are stored in + :variable:`CMAKE_MATCH_<n>`, similar to + :command:`string(REGEX MATCHALL)`. See policy :policy:`CMP0159`. + ``ENCODING <encoding-type>`` .. versionadded:: 3.1 diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 35b4497..2bb4f2f 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -57,6 +57,7 @@ Policies Introduced by CMake 3.29 .. toctree:: :maxdepth: 1 + CMP0159: file(STRINGS) with REGEX updates CMAKE_MATCH_<n>. </policy/CMP0159> CMP0158: add_test() honors CMAKE_CROSSCOMPILING_EMULATOR only when cross-compiling. </policy/CMP0158> CMP0157: Swift compilation mode is selected by an abstraction. </policy/CMP0157> CMP0156: De-duplicate libraries on link lines based on linker capabilities. </policy/CMP0156> diff --git a/Help/policy/CMP0159.rst b/Help/policy/CMP0159.rst new file mode 100644 index 0000000..2d05282 --- /dev/null +++ b/Help/policy/CMP0159.rst @@ -0,0 +1,24 @@ +CMP0159 +------- + +.. versionadded:: 3.29 + +:command:`file(STRINGS)` with ``REGEX`` updates :variable:`CMAKE_MATCH_<n>`. + +In CMake 3.28 and below the :command:`file(STRINGS)` command's ``REGEX`` +option does not affect :variable:`CMAKE_MATCH_<n>` variables. CMake 3.29 +and above prefer to update the :variable:`CMAKE_MATCH_<n>` variables using +captures from the last match in the file, similar to the +:command:`string(REGEX MATCHALL)` command. This policy provides +compatibility for projects that have not been updated to expect the behavior. + +The ``OLD`` behavior for this policy is for :command:`file(STRINGS)` with +``REGEX`` to not store capture groups in :variable:`CMAKE_MATCH_<n>` +variables. The ``NEW`` behavior is to store the capture groups. + +This policy was introduced in CMake version 3.29. Use the +:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. +Unlike many policies, CMake version |release| does *not* warn +when this policy is not set and simply uses ``OLD`` behavior. + +.. include:: DEPRECATED.txt diff --git a/Help/variable/CMAKE_MATCH_n.rst b/Help/variable/CMAKE_MATCH_n.rst index a92788e..c7dd623 100644 --- a/Help/variable/CMAKE_MATCH_n.rst +++ b/Help/variable/CMAKE_MATCH_n.rst @@ -1,8 +1,6 @@ CMAKE_MATCH_<n> --------------- -.. versionadded:: 3.9 - 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. |