find_file: Fix blank line instead of framework path in debug output

There's no point printing a blank line if FindHeaderInFramework()
returns an empty string. Pass in the debug object to that function
instead so it can record the actual paths it tests in the debug output
directly.
This commit is contained in:
Craig Scott 2022-02-28 18:17:50 +11:00
parent 07a7772968
commit 3354d52e3d
2 changed files with 10 additions and 4 deletions

View File

@ -65,7 +65,8 @@ std::string cmFindPathCommand::FindHeader()
}
std::string cmFindPathCommand::FindHeaderInFramework(
std::string const& file, std::string const& dir) const
std::string const& file, std::string const& dir,
cmFindBaseDebugState& debug) const
{
std::string fileName = file;
std::string frameWorkName;
@ -88,11 +89,13 @@ std::string cmFindPathCommand::FindHeaderInFramework(
std::string fpath = cmStrCat(dir, frameWorkName, ".framework");
std::string intPath = cmStrCat(fpath, "/Headers/", fileName);
if (cmSystemTools::FileExists(intPath)) {
debug.FoundAt(intPath);
if (this->IncludeFileInPath) {
return intPath;
}
return fpath;
}
debug.FailedAt(intPath);
}
}
// if it is not found yet or not a framework header, then do a glob search
@ -103,12 +106,15 @@ std::string cmFindPathCommand::FindHeaderInFramework(
std::vector<std::string> files = globIt.GetFiles();
if (!files.empty()) {
std::string fheader = cmSystemTools::CollapseFullPath(files[0]);
debug.FoundAt(fheader);
if (this->IncludeFileInPath) {
return fheader;
}
fheader.resize(fheader.size() - file.size());
return fheader;
}
// No frameworks matched the glob, so nothing more to add to debug.FailedAt()
return "";
}
@ -135,8 +141,7 @@ std::string cmFindPathCommand::FindFrameworkHeader(cmFindBaseDebugState& debug)
{
for (std::string const& n : this->Names) {
for (std::string const& sp : this->SearchPaths) {
std::string fwPath = this->FindHeaderInFramework(n, sp);
fwPath.empty() ? debug.FailedAt(fwPath) : debug.FoundAt(fwPath);
std::string fwPath = this->FindHeaderInFramework(n, sp, debug);
if (!fwPath.empty()) {
return fwPath;
}

View File

@ -30,7 +30,8 @@ public:
private:
std::string FindHeaderInFramework(std::string const& file,
std::string const& dir) const;
std::string const& dir,
cmFindBaseDebugState& debug) const;
std::string FindHeader();
std::string FindNormalHeader(cmFindBaseDebugState& debug);
std::string FindFrameworkHeader(cmFindBaseDebugState& debug);