ENH: fix static build of vtk with cmake by having custom targets chain depend information
This commit is contained in:
parent
95e2b6070f
commit
fe9714e2f0
|
@ -889,7 +889,7 @@ cmGlobalUnixMakefileGenerator3
|
||||||
if(emitted.insert(lib->first).second)
|
if(emitted.insert(lib->first).second)
|
||||||
{
|
{
|
||||||
// Add this dependency.
|
// Add this dependency.
|
||||||
this->AppendAnyGlobalDepend(depends, lib->first.c_str());
|
this->AppendAnyGlobalDepend(depends, lib->first.c_str(), emitted);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -903,7 +903,7 @@ cmGlobalUnixMakefileGenerator3
|
||||||
if(emitted.insert(*util).second)
|
if(emitted.insert(*util).second)
|
||||||
{
|
{
|
||||||
// Add this dependency.
|
// Add this dependency.
|
||||||
this->AppendAnyGlobalDepend(depends, util->c_str());
|
this->AppendAnyGlobalDepend(depends, util->c_str(), emitted);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -912,7 +912,8 @@ cmGlobalUnixMakefileGenerator3
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void
|
void
|
||||||
cmGlobalUnixMakefileGenerator3
|
cmGlobalUnixMakefileGenerator3
|
||||||
::AppendAnyGlobalDepend(std::vector<std::string>& depends, const char* name)
|
::AppendAnyGlobalDepend(std::vector<std::string>& depends, const char* name,
|
||||||
|
std::set<cmStdString>& emitted)
|
||||||
{
|
{
|
||||||
cmTarget *result;
|
cmTarget *result;
|
||||||
|
|
||||||
|
@ -930,6 +931,21 @@ cmGlobalUnixMakefileGenerator3
|
||||||
std::string tgtName = lg3->GetRelativeTargetDirectory(*result);
|
std::string tgtName = lg3->GetRelativeTargetDirectory(*result);
|
||||||
tgtName += "/all";
|
tgtName += "/all";
|
||||||
depends.push_back(tgtName);
|
depends.push_back(tgtName);
|
||||||
|
if(result->GetType() == cmTarget::STATIC_LIBRARY)
|
||||||
|
{
|
||||||
|
const cmTarget::LinkLibraries& tlibs = result->GetLinkLibraries();
|
||||||
|
for(cmTarget::LinkLibraries::const_iterator lib = tlibs.begin();
|
||||||
|
lib != tlibs.end(); ++lib)
|
||||||
|
{
|
||||||
|
// Don't emit the same library twice for this target.
|
||||||
|
if(emitted.insert(lib->first).second)
|
||||||
|
{
|
||||||
|
// Add this dependency.
|
||||||
|
this->AppendAnyGlobalDepend(depends, lib->first.c_str(),
|
||||||
|
emitted);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ protected:
|
||||||
void AppendGlobalTargetDepends(std::vector<std::string>& depends,
|
void AppendGlobalTargetDepends(std::vector<std::string>& depends,
|
||||||
cmTarget& target);
|
cmTarget& target);
|
||||||
void AppendAnyGlobalDepend(std::vector<std::string>& depends,
|
void AppendAnyGlobalDepend(std::vector<std::string>& depends,
|
||||||
const char* name);
|
const char* name, std::set<cmStdString>& emitted);
|
||||||
|
|
||||||
// does this generator need a requires step for any of its targets
|
// does this generator need a requires step for any of its targets
|
||||||
bool NeedRequiresStep(cmLocalUnixMakefileGenerator3 *lg);
|
bool NeedRequiresStep(cmLocalUnixMakefileGenerator3 *lg);
|
||||||
|
|
Loading…
Reference in New Issue