From 967d3ea85c04744ff356ecbf4bcd9eb2fe94cd8c Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 17 Oct 2024 11:05:10 -0400 Subject: [PATCH] cmake-gui: Explicitly normalize input paths as they exist on disk --- Source/QtDialog/CMakeSetup.cxx | 12 ++++++------ Source/QtDialog/QCMake.cxx | 4 +--- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index 21ed8c8431..7847a4bf4b 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -172,8 +172,8 @@ int main(int argc, char** argv) } } - sourceDirectory = cmSystemTools::CollapseFullPath(path.toStdString()); - cmSystemTools::ConvertToUnixSlashes(sourceDirectory); + sourceDirectory = + cmSystemTools::ToNormalizedPathOnDisk(path.toStdString()); } else if (arg.startsWith("-B")) { QString path = arg.mid(2); if (path.isEmpty()) { @@ -189,8 +189,8 @@ int main(int argc, char** argv) } } - binaryDirectory = cmSystemTools::CollapseFullPath(path.toStdString()); - cmSystemTools::ConvertToUnixSlashes(binaryDirectory); + binaryDirectory = + cmSystemTools::ToNormalizedPathOnDisk(path.toStdString()); } else if (arg.startsWith("--preset=")) { QString preset = arg.mid(cmStrLen("--preset=")); if (preset.isEmpty()) { @@ -223,7 +223,7 @@ int main(int argc, char** argv) } else { if (args.count() == 2) { std::string filePath = - cmSystemTools::CollapseFullPath(args[1].toStdString()); + cmSystemTools::ToNormalizedPathOnDisk(args[1].toStdString()); // check if argument is a directory containing CMakeCache.txt std::string buildFilePath = cmStrCat(filePath, "/CMakeCache.txt"); @@ -243,7 +243,7 @@ int main(int argc, char** argv) } else if (cmSystemTools::FileExists(srcFilePath.c_str())) { dialog.setSourceDirectory(QString::fromStdString(filePath)); dialog.setBinaryDirectory( - QString::fromStdString(cmSystemTools::CollapseFullPath("."))); + QString::fromStdString(cmSystemTools::GetCurrentWorkingDirectory())); } } } diff --git a/Source/QtDialog/QCMake.cxx b/Source/QtDialog/QCMake.cxx index 45c47171be..7c94ea264d 100644 --- a/Source/QtDialog/QCMake.cxx +++ b/Source/QtDialog/QCMake.cxx @@ -258,9 +258,7 @@ void QCMake::configure() #endif // Apply the same transformations that the command-line invocation does auto sanitizePath = [](QString const& value) -> std::string { - std::string path = cmSystemTools::CollapseFullPath(value.toStdString()); - cmSystemTools::ConvertToUnixSlashes(path); - return path; + return cmSystemTools::ToNormalizedPathOnDisk(value.toStdString()); }; this->CMakeInstance->SetHomeDirectory(sanitizePath(this->SourceDirectory));