cmGeneratorTarget: Port GetLinkInterfaceLibraries away from cmTarget.

This commit is contained in:
Stephen Kelly 2015-09-16 04:45:43 +02:00
parent 1c5d70f9c2
commit f539da126b
3 changed files with 10 additions and 7 deletions

View File

@ -1109,8 +1109,11 @@ static const struct TargetPropertyNode : public cmGeneratorExpressionNode
if(isInterfaceProperty) if(isInterfaceProperty)
{ {
cmGeneratorTarget* gHeadTarget =
context->Makefile->GetGlobalGenerator()
->GetGeneratorTarget(headTarget);
if(cmLinkInterfaceLibraries const* iface = if(cmLinkInterfaceLibraries const* iface =
gtgt->GetLinkInterfaceLibraries(context->Config, headTarget, true)) gtgt->GetLinkInterfaceLibraries(context->Config, gHeadTarget, true))
{ {
linkedTargetsContent = linkedTargetsContent =
getLinkedTargetsContent(iface->Libraries, target, getLinkedTargetsContent(iface->Libraries, target,

View File

@ -2058,7 +2058,7 @@ void processILibs(const std::string& config,
tgts.push_back(item.Target); tgts.push_back(item.Target);
cmGeneratorTarget* gt = gg->GetGeneratorTarget(item.Target); cmGeneratorTarget* gt = gg->GetGeneratorTarget(item.Target);
if(cmLinkInterfaceLibraries const* iface = if(cmLinkInterfaceLibraries const* iface =
gt->GetLinkInterfaceLibraries(config, headTarget->Target, true)) gt->GetLinkInterfaceLibraries(config, headTarget, true))
{ {
for(std::vector<cmLinkItem>::const_iterator for(std::vector<cmLinkItem>::const_iterator
it = iface->Libraries.begin(); it = iface->Libraries.begin();
@ -4592,13 +4592,13 @@ void cmGeneratorTarget::ComputeLinkInterface(const std::string& config,
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
const cmLinkInterfaceLibraries * const cmLinkInterfaceLibraries *
cmGeneratorTarget::GetLinkInterfaceLibraries(const std::string& config, cmGeneratorTarget::GetLinkInterfaceLibraries(const std::string& config,
cmTarget const* head, cmGeneratorTarget const* head,
bool usage_requirements_only) const bool usage_requirements_only) const
{ {
// Imported targets have their own link interface. // Imported targets have their own link interface.
if(this->IsImported()) if(this->IsImported())
{ {
return this->GetImportLinkInterface(config, head, return this->GetImportLinkInterface(config, head->Target,
usage_requirements_only); usage_requirements_only);
} }
@ -4624,12 +4624,12 @@ cmGeneratorTarget::GetLinkInterfaceLibraries(const std::string& config,
return &hm.begin()->second; return &hm.begin()->second;
} }
cmOptionalLinkInterface& iface = hm[head]; cmOptionalLinkInterface& iface = hm[head->Target];
if(!iface.LibrariesDone) if(!iface.LibrariesDone)
{ {
iface.LibrariesDone = true; iface.LibrariesDone = true;
this->ComputeLinkInterfaceLibraries( this->ComputeLinkInterfaceLibraries(
config, iface, head, usage_requirements_only); config, iface, head->Target, usage_requirements_only);
} }
return iface.Exists? &iface : 0; return iface.Exists? &iface : 0;

View File

@ -116,7 +116,7 @@ public:
cmLinkInterfaceLibraries const* cmLinkInterfaceLibraries const*
GetLinkInterfaceLibraries(const std::string& config, GetLinkInterfaceLibraries(const std::string& config,
cmTarget const* headTarget, const cmGeneratorTarget* headTarget,
bool usage_requirements_only) const; bool usage_requirements_only) const;
void ComputeLinkInterfaceLibraries(const std::string& config, void ComputeLinkInterfaceLibraries(const std::string& config,