summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-05-29 16:52:38 (GMT)
committerBrad King <brad.king@kitware.com>2018-05-29 18:00:33 (GMT)
commit83630d491888705dc650f2ae62de9943181b50df (patch)
treefc93d648b7f52ce91ff82b2574cce5a1a6ce3593 /Source/cmSystemTools.h
parent519427e32c1f914b2a4184553c18fccd4614209d (diff)
downloadCMake-83630d491888705dc650f2ae62de9943181b50df.zip
CMake-83630d491888705dc650f2ae62de9943181b50df.tar.gz
CMake-83630d491888705dc650f2ae62de9943181b50df.tar.bz2
cmSystemTools: Revert GetRealPath implementation on Windows
The use of `uv_fs_realpath` introduced by commit v3.11.0-rc1~445^2~1 (cmSystemTools: Implement GetRealPath on Windows, 2017-10-02) causes `subst` drives to be expanded on Windows, breaking existing use cases. Revert its use until an alternative implementation can be chosen. Preserve the behavior introduced by commit v3.11.0-rc1~445^2 (cmTimestamp: For symlinks switch to timestamp of resolved path, 2017-10-02) by retaining use of `uv_fs_realpath` in a function of a different name. Fixes: #18033 Issue: #17206
Diffstat (limited to 'Source/cmSystemTools.h')
-rw-r--r--Source/cmSystemTools.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index a53afde..4390c86 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -500,12 +500,14 @@ public:
unsigned int Delay;
};
static WindowsFileRetry GetWindowsFileRetry();
-
- /** Get the real path for a given path, removing all symlinks. */
- static std::string GetRealPath(const std::string& path,
- std::string* errorMessage = 0);
#endif
+ /** Get the real path for a given path, removing all symlinks.
+ This variant of GetRealPath also works on Windows but will
+ resolve subst drives too. */
+ static std::string GetRealPathResolvingWindowsSubst(
+ const std::string& path, std::string* errorMessage = nullptr);
+
/** Perform one-time initialization of libuv. */
static void InitializeLibUV();