summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-07-24 12:43:15 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-07-24 12:43:19 (GMT)
commit6194193a8a0a476539590aabbb27094d1aff136a (patch)
tree7b56eea1985a37978b58b64c35c53bf4c682d571 /Help
parente61a51b5a247bec564cb48184b499d17386c0470 (diff)
parent6b5f2dbbfe453f9bafe46ee420e657735ff16fb0 (diff)
downloadCMake-6194193a8a0a476539590aabbb27094d1aff136a.zip
CMake-6194193a8a0a476539590aabbb27094d1aff136a.tar.gz
CMake-6194193a8a0a476539590aabbb27094d1aff136a.tar.bz2
Merge topic 'file-REAL_PATH-relative'
6b5f2dbbfe file(REAL_PATH): resolve symlinks before '..' components Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !8605
Diffstat (limited to 'Help')
-rw-r--r--Help/command/file.rst5
-rw-r--r--Help/manual/cmake-policies.7.rst8
-rw-r--r--Help/policy/CMP0152.rst20
3 files changed, 33 insertions, 0 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst
index 30a7f4d..f9d1a79 100644
--- a/Help/command/file.rst
+++ b/Help/command/file.rst
@@ -981,6 +981,11 @@ Path Conversion
if ``USERPROFILE`` is not defined. On all other platforms, only ``HOME``
is used.
+ .. versionchanged:: 3.28
+
+ All symlinks are resolved before collapsing ``../`` components.
+ See policy :policy:`CMP0152`.
+
.. signature::
file(RELATIVE_PATH <variable> <directory> <file>)
diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst
index 7c48806..89b7924 100644
--- a/Help/manual/cmake-policies.7.rst
+++ b/Help/manual/cmake-policies.7.rst
@@ -51,6 +51,14 @@ The :variable:`CMAKE_MINIMUM_REQUIRED_VERSION` variable may also be used
to determine whether to report an error on use of deprecated macros or
functions.
+Policies Introduced by CMake 3.28
+=================================
+
+.. toctree::
+ :maxdepth: 1
+
+ CMP0152: file(REAL_PATH) resolves symlinks before collapsing ../ components. </policy/CMP0152>
+
Policies Introduced by CMake 3.27
=================================
diff --git a/Help/policy/CMP0152.rst b/Help/policy/CMP0152.rst
new file mode 100644
index 0000000..d7e8692
--- /dev/null
+++ b/Help/policy/CMP0152.rst
@@ -0,0 +1,20 @@
+CMP0152
+-------
+
+.. versionadded:: 3.28
+
+:command:`file(REAL_PATH)` resolves symlinks before collapsing ../ components.
+
+In CMake 3.27 and below, :command:`file(REAL_PATH)` collapsed any ``../``
+components in a path before resolving symlinks. This produced incorrect
+results when the ``../`` collapsed away a symlink.
+
+The ``OLD`` behavior for this policy is to collapse ``../`` components before
+resolving symlinks.
+The ``NEW`` behavior for this policy is to resolve all symlinks before
+collapsing ``../`` components.
+
+This policy was introduced in CMake version 3.28. Use the
+:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.
+
+.. include:: DEPRECATED.txt