cmGeneratorTarget: Remove unnecessary target type check in dependency tracing

Since commit 2600e923a6 (Disallow INTERFACE libraries with
add_custom_command(TARGET)., 2014-03-19, v3.0.0-rc3~1^2), we do not
trace dependencies of INTERFACE libraries that do not participate in the
build system.  Therefore we can remove a check of the target type from
the implementation that had been added by commit 9db9c1fc8b (cmTarget:
Don't try to get sources of an INTERFACE_LIBRARY., 2014-02-14,
v3.0.0-rc1~20^2).
This commit is contained in:
Brad King 2020-07-23 13:19:08 -04:00
parent 6fd7ca5e51
commit bce82df0aa

View File

@ -2813,29 +2813,26 @@ cmTargetTraceDependencies::cmTargetTraceDependencies(cmGeneratorTarget* target)
this->CurrentEntry = nullptr; this->CurrentEntry = nullptr;
// Queue all the source files already specified for the target. // Queue all the source files already specified for the target.
if (target->GetType() != cmStateEnums::INTERFACE_LIBRARY) { std::set<cmSourceFile*> emitted;
std::set<cmSourceFile*> emitted; std::vector<std::string> const& configs =
std::vector<std::string> const& configs = this->Makefile->GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig);
this->Makefile->GetGeneratorConfigs(cmMakefile::IncludeEmptyConfig); for (std::string const& c : configs) {
for (std::string const& c : configs) { std::vector<cmSourceFile*> sources;
std::vector<cmSourceFile*> sources; this->GeneratorTarget->GetSourceFiles(sources, c);
this->GeneratorTarget->GetSourceFiles(sources, c); for (cmSourceFile* sf : sources) {
for (cmSourceFile* sf : sources) { const std::set<cmGeneratorTarget const*> tgts =
const std::set<cmGeneratorTarget const*> tgts = this->GlobalGenerator->GetFilenameTargetDepends(sf);
this->GlobalGenerator->GetFilenameTargetDepends(sf); if (cm::contains(tgts, this->GeneratorTarget)) {
if (cm::contains(tgts, this->GeneratorTarget)) { std::ostringstream e;
std::ostringstream e; e << "Evaluation output file\n \"" << sf->ResolveFullPath()
e << "Evaluation output file\n \"" << sf->ResolveFullPath() << "\"\ndepends on the sources of a target it is used in. This "
<< "\"\ndepends on the sources of a target it is used in. This " "is a dependency loop and is not allowed.";
"is a dependency loop and is not allowed."; this->GeneratorTarget->LocalGenerator->IssueMessage(
this->GeneratorTarget->LocalGenerator->IssueMessage( MessageType::FATAL_ERROR, e.str());
MessageType::FATAL_ERROR, e.str()); return;
return; }
} if (emitted.insert(sf).second && this->SourcesQueued.insert(sf).second) {
if (emitted.insert(sf).second && this->SourceQueue.push(sf);
this->SourcesQueued.insert(sf).second) {
this->SourceQueue.push(sf);
}
} }
} }
} }