mirror of
https://github.com/reactos/CMake.git
synced 2024-11-28 14:01:21 +00:00
cmake: avoid getcwd in CollapseFullPath
`CollapseFullPath` calls getcwd, which is a rather expensive system call. we can replace it with `GetHomeOutputDirectory()` to save us from the calling overhead
This commit is contained in:
parent
23e782ce05
commit
22f38c0d6b
@ -215,7 +215,8 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
|
||||
}
|
||||
|
||||
if (cmSystemTools::FileIsFullPath(filename)) {
|
||||
filename = cmSystemTools::CollapseFullPath(filename);
|
||||
filename = cmSystemTools::CollapseFullPath(
|
||||
filename, status.GetMakefile().GetHomeOutputDirectory());
|
||||
}
|
||||
switch (doing) {
|
||||
case doing_depfile:
|
||||
|
@ -53,7 +53,8 @@ bool cmAddSubDirectoryCommand(std::vector<std::string> const& args,
|
||||
status.SetError(error);
|
||||
return false;
|
||||
}
|
||||
srcPath = cmSystemTools::CollapseFullPath(srcPath);
|
||||
srcPath =
|
||||
cmSystemTools::CollapseFullPath(srcPath, mf.GetHomeOutputDirectory());
|
||||
|
||||
// Compute the full path to the binary directory.
|
||||
std::string binPath;
|
||||
|
@ -34,7 +34,8 @@ void AppendPaths(const std::vector<std::string>& inputs,
|
||||
it = cmStrCat(lg->GetMakefile()->GetCurrentBinaryDirectory(), '/', it);
|
||||
}
|
||||
if (cmSystemTools::FileIsFullPath(it)) {
|
||||
it = cmSystemTools::CollapseFullPath(it);
|
||||
it = cmSystemTools::CollapseFullPath(
|
||||
it, lg->GetMakefile()->GetHomeOutputDirectory());
|
||||
}
|
||||
}
|
||||
cm::append(output, result);
|
||||
|
@ -3087,7 +3087,8 @@ std::vector<BT<std::string>> cmGeneratorTarget::GetIncludeDirectories(
|
||||
cmLinkImplementationLibraries const* impl =
|
||||
this->GetLinkImplementationLibraries(config);
|
||||
for (cmLinkImplItem const& lib : impl->Libraries) {
|
||||
std::string libDir = cmSystemTools::CollapseFullPath(lib.AsStr());
|
||||
std::string libDir = cmSystemTools::CollapseFullPath(
|
||||
lib.AsStr(), this->Makefile->GetHomeOutputDirectory());
|
||||
|
||||
static cmsys::RegularExpression frameworkCheck(
|
||||
"(.*\\.framework)(/Versions/[^/]+)?/[^/]+$");
|
||||
|
@ -31,7 +31,8 @@ cmSourceFileLocation::cmSourceFileLocation(cmMakefile const* mf,
|
||||
this->AmbiguousExtension = true;
|
||||
this->Directory = cmSystemTools::GetFilenamePath(name);
|
||||
if (cmSystemTools::FileIsFullPath(this->Directory)) {
|
||||
this->Directory = cmSystemTools::CollapseFullPath(this->Directory);
|
||||
this->Directory = cmSystemTools::CollapseFullPath(
|
||||
this->Directory, mf->GetHomeOutputDirectory());
|
||||
}
|
||||
this->Name = cmSystemTools::GetFilenameName(name);
|
||||
if (kind == cmSourceFileLocationKind::Known) {
|
||||
|
Loading…
Reference in New Issue
Block a user