cmFind*Command: Simplify file validation code paths

This commit is contained in:
Brad King 2024-10-17 14:48:37 -04:00
parent fbd5d4e87f
commit 808ae84483
2 changed files with 11 additions and 13 deletions

View File

@ -422,18 +422,15 @@ bool cmFindLibraryHelper::CheckDirectoryForName(std::string const& path,
if (name.TryRaw) {
std::string testPath = cmStrCat(path, name.Raw);
const bool exists = cmSystemTools::FileExists(testPath, true);
if (!exists) {
this->DebugLibraryFailed(name.Raw, path);
} else {
if (cmSystemTools::FileExists(testPath, true)) {
testPath = cmSystemTools::CollapseFullPath(testPath);
if (this->Validate(testPath)) {
this->DebugLibraryFound(name.Raw, path);
this->BestPath = testPath;
return true;
}
this->DebugLibraryFailed(name.Raw, path);
}
this->DebugLibraryFailed(name.Raw, path);
}
// No library file has yet been found.

View File

@ -88,17 +88,18 @@ struct cmFindProgramHelper
std::string testNameExt = cmStrCat(name, ext);
std::string testPath =
cmSystemTools::CollapseFullPath(testNameExt, path);
bool exists = this->FileIsValid(testPath);
exists ? this->DebugSearches.FoundAt(testPath)
: this->DebugSearches.FailedAt(testPath);
if (exists) {
this->BestPath = testPath;
return true;
if (this->FileIsExecutable(testPath)) {
if (this->FindBase->Validate(testPath)) {
this->BestPath = testPath;
this->DebugSearches.FoundAt(testPath);
return true;
}
}
this->DebugSearches.FailedAt(testPath);
return false;
});
}
bool FileIsValid(std::string const& file) const
bool FileIsExecutable(std::string const& file) const
{
if (!this->FileIsExecutableCMP0109(file)) {
return false;
@ -114,7 +115,7 @@ struct cmFindProgramHelper
}
}
#endif
return this->FindBase->Validate(file);
return true;
}
bool FileIsExecutableCMP0109(std::string const& file) const
{