Merge topic 'normalize-input-paths'

592e95bbea cmFindPackageCommand: Avoid temporarily saving non-existent result
8d6b76771d find_package: Explicitly normalize CONFIG file path as it exists on disk

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !10096
This commit is contained in:
Brad King
2024-12-13 13:56:48 +00:00
committed by Kitware Robot

View File

@@ -1437,7 +1437,7 @@ bool cmFindPackageCommand::HandlePackageMode(
// The file location was cached. Look for the correct file.
std::string file;
if (this->FindConfigFile(dir, file)) {
this->FileFound = file;
this->FileFound = std::move(file);
fileFound = true;
}
def = this->Makefile->GetDefinition(this->Variable);
@@ -2409,9 +2409,9 @@ bool cmFindPackageCommand::CheckDirectory(std::string const& dir)
}
// Look for the file in this directory.
if (this->FindConfigFile(d, this->FileFound)) {
// Remove duplicate slashes.
cmSystemTools::ConvertToUnixSlashes(this->FileFound);
std::string file;
if (this->FindConfigFile(d, file)) {
this->FileFound = std::move(file);
return true;
}
return false;
@@ -2429,6 +2429,8 @@ bool cmFindPackageCommand::FindConfigFile(std::string const& dir,
// Allow resolving symlinks when the config file is found through a link
if (this->UseRealPath) {
file = cmSystemTools::GetRealPath(file);
} else {
file = cmSystemTools::ToNormalizedPathOnDisk(file);
}
return true;
}