cmTarget: Add GetHeadToLinkInterfaceMap methods.

This commit is contained in:
Stephen Kelly 2015-08-26 19:37:32 +02:00
parent 20993de464
commit 6353816786
2 changed files with 25 additions and 8 deletions

View File

@ -4126,9 +4126,7 @@ cmLinkInterface const* cmTarget::GetLinkInterface(const std::string& config,
} }
// Lookup any existing link interface for this configuration. // Lookup any existing link interface for this configuration.
std::string CONFIG = cmSystemTools::UpperCase(config); cmHeadToLinkInterfaceMap& hm = this->GetHeadToLinkInterfaceMap(config);
cmHeadToLinkInterfaceMap& hm =
this->Internal->LinkInterfaceMap[CONFIG];
// If the link interface does not depend on the head target // If the link interface does not depend on the head target
// then return the one we computed first. // then return the one we computed first.
@ -4177,11 +4175,10 @@ cmTarget::GetLinkInterfaceLibraries(const std::string& config,
} }
// Lookup any existing link interface for this configuration. // Lookup any existing link interface for this configuration.
std::string CONFIG = cmSystemTools::UpperCase(config);
cmHeadToLinkInterfaceMap& hm = cmHeadToLinkInterfaceMap& hm =
(usage_requirements_only ? (usage_requirements_only ?
this->Internal->LinkInterfaceUsageRequirementsOnlyMap[CONFIG] : this->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
this->Internal->LinkInterfaceMap[CONFIG]); this->GetHeadToLinkInterfaceMap(config));
// If the link interface does not depend on the head target // If the link interface does not depend on the head target
// then return the one we computed first. // then return the one we computed first.
@ -4201,6 +4198,21 @@ cmTarget::GetLinkInterfaceLibraries(const std::string& config,
return iface.Exists? &iface : 0; return iface.Exists? &iface : 0;
} }
cmHeadToLinkInterfaceMap&
cmTarget::GetHeadToLinkInterfaceMap(const std::string &config) const
{
std::string CONFIG = cmSystemTools::UpperCase(config);
return this->Internal->LinkInterfaceMap[CONFIG];
}
cmHeadToLinkInterfaceMap&
cmTarget::GetHeadToLinkInterfaceUsageRequirementsMap(
const std::string &config) const
{
std::string CONFIG = cmSystemTools::UpperCase(config);
return this->Internal->LinkInterfaceUsageRequirementsOnlyMap[CONFIG];
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
const cmLinkInterface * const cmLinkInterface *
cmTarget::GetImportLinkInterface(const std::string& config, cmTarget::GetImportLinkInterface(const std::string& config,
@ -4216,8 +4228,8 @@ cmTarget::GetImportLinkInterface(const std::string& config,
std::string CONFIG = cmSystemTools::UpperCase(config); std::string CONFIG = cmSystemTools::UpperCase(config);
cmHeadToLinkInterfaceMap& hm = cmHeadToLinkInterfaceMap& hm =
(usage_requirements_only ? (usage_requirements_only ?
this->Internal->LinkInterfaceUsageRequirementsOnlyMap[CONFIG] : this->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
this->Internal->LinkInterfaceMap[CONFIG]); this->GetHeadToLinkInterfaceMap(config));
// If the link interface does not depend on the head target // If the link interface does not depend on the head target
// then return the one we computed first. // then return the one we computed first.

View File

@ -250,6 +250,11 @@ public:
cmTarget const* headTarget, cmTarget const* headTarget,
bool usage_requirements_only) const; bool usage_requirements_only) const;
cmHeadToLinkInterfaceMap&
GetHeadToLinkInterfaceMap(std::string const& config) const;
cmHeadToLinkInterfaceMap& GetHeadToLinkInterfaceUsageRequirementsMap(
std::string const& config) const;
struct LinkImplementation: public cmLinkImplementationLibraries struct LinkImplementation: public cmLinkImplementationLibraries
{ {
// Languages whose runtime libraries must be linked. // Languages whose runtime libraries must be linked.