summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-08-26 17:39:17 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-08-26 17:39:17 (GMT)
commit2cb3e5740269757f6f93d24a4d13570ee72de318 (patch)
treee75cf0d94962d00adf5264f2a5d117dc4e4731e5 /Source
parent6d3d099b4a2d8b020fb1a9ebeb29b17b3fb6c9d6 (diff)
downloadCMake-2cb3e5740269757f6f93d24a4d13570ee72de318.zip
CMake-2cb3e5740269757f6f93d24a4d13570ee72de318.tar.gz
CMake-2cb3e5740269757f6f93d24a4d13570ee72de318.tar.bz2
cmGeneratorTarget: Move GetImportLinkInterface from cmTarget.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx69
-rw-r--r--Source/cmGeneratorTarget.h14
-rw-r--r--Source/cmTarget.cxx65
-rw-r--r--Source/cmTarget.h10
4 files changed, 78 insertions, 80 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index 40a3637..c966e24 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -3370,7 +3370,7 @@ cmGeneratorTarget::GetLinkInterface(const std::string& config,
// Imported targets have their own link interface.
if(this->IsImported())
{
- return this->Target->GetImportLinkInterface(config, head, false);
+ return this->GetImportLinkInterface(config, head, false);
}
// Link interfaces are not supported for executables that do not
@@ -3383,7 +3383,7 @@ cmGeneratorTarget::GetLinkInterface(const std::string& config,
// Lookup any existing link interface for this configuration.
cmHeadToLinkInterfaceMap& hm =
- this->Target->GetHeadToLinkInterfaceMap(config);
+ this->GetHeadToLinkInterfaceMap(config);
// If the link interface does not depend on the head target
// then return the one we computed first.
@@ -3518,7 +3518,7 @@ cmGeneratorTarget::GetLinkInterfaceLibraries(const std::string& config,
// Imported targets have their own link interface.
if(this->IsImported())
{
- return this->Target->GetImportLinkInterface(config, head,
+ return this->GetImportLinkInterface(config, head,
usage_requirements_only);
}
@@ -3534,8 +3534,8 @@ cmGeneratorTarget::GetLinkInterfaceLibraries(const std::string& config,
std::string CONFIG = cmSystemTools::UpperCase(config);
cmHeadToLinkInterfaceMap& hm =
(usage_requirements_only ?
- this->Target->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
- this->Target->GetHeadToLinkInterfaceMap(config));
+ this->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
+ this->GetHeadToLinkInterfaceMap(config));
// If the link interface does not depend on the head target
// then return the one we computed first.
@@ -3705,3 +3705,62 @@ cmGeneratorTarget::ComputeLinkInterfaceLibraries(
}
}
}
+
+//----------------------------------------------------------------------------
+const cmLinkInterface *
+cmGeneratorTarget::GetImportLinkInterface(const std::string& config,
+ cmTarget const* headTarget,
+ bool usage_requirements_only) const
+{
+ cmTarget::ImportInfo const* info = this->Target->GetImportInfo(config);
+ if(!info)
+ {
+ return 0;
+ }
+
+ std::string CONFIG = cmSystemTools::UpperCase(config);
+ cmHeadToLinkInterfaceMap& hm =
+ (usage_requirements_only ?
+ this->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
+ this->GetHeadToLinkInterfaceMap(config));
+
+ // If the link interface does not depend on the head target
+ // then return the one we computed first.
+ if(!hm.empty() && !hm.begin()->second.HadHeadSensitiveCondition)
+ {
+ return &hm.begin()->second;
+ }
+
+ cmOptionalLinkInterface& iface = hm[headTarget];
+ if(!iface.AllDone)
+ {
+ iface.AllDone = true;
+ iface.Multiplicity = info->Multiplicity;
+ cmSystemTools::ExpandListArgument(info->Languages, iface.Languages);
+ this->Target->ExpandLinkItems(info->LibrariesProp, info->Libraries,
+ config,
+ headTarget, usage_requirements_only,
+ iface.Libraries,
+ iface.HadHeadSensitiveCondition);
+ std::vector<std::string> deps;
+ cmSystemTools::ExpandListArgument(info->SharedDeps, deps);
+ this->Target->LookupLinkItems(deps, iface.SharedDeps);
+ }
+
+ return &iface;
+}
+
+cmHeadToLinkInterfaceMap&
+cmGeneratorTarget::GetHeadToLinkInterfaceMap(const std::string &config) const
+{
+ std::string CONFIG = cmSystemTools::UpperCase(config);
+ return this->LinkInterfaceMap[CONFIG];
+}
+
+cmHeadToLinkInterfaceMap&
+cmGeneratorTarget::GetHeadToLinkInterfaceUsageRequirementsMap(
+ const std::string &config) const
+{
+ std::string CONFIG = cmSystemTools::UpperCase(config);
+ return this->LinkInterfaceUsageRequirementsOnlyMap[CONFIG];
+}
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index ac2b96c..9c5adf6 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -390,6 +390,20 @@ private:
};
mutable std::map<std::string, LinkImplClosure> LinkImplClosureMap;
+ typedef std::map<std::string, cmHeadToLinkInterfaceMap>
+ LinkInterfaceMapType;
+ mutable LinkInterfaceMapType LinkInterfaceMap;
+ mutable LinkInterfaceMapType LinkInterfaceUsageRequirementsOnlyMap;
+
+ cmHeadToLinkInterfaceMap&
+ GetHeadToLinkInterfaceMap(std::string const& config) const;
+ cmHeadToLinkInterfaceMap& GetHeadToLinkInterfaceUsageRequirementsMap(
+ std::string const& config) const;
+
+ cmLinkInterface const*
+ GetImportLinkInterface(const std::string& config, cmTarget const* head,
+ bool usage_requirements_only) const;
+
typedef std::pair<std::string, bool> OutputNameKey;
typedef std::map<OutputNameKey, std::string> OutputNameMapType;
mutable OutputNameMapType OutputNameMap;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 9e9aed4..8628583 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -89,11 +89,6 @@ public:
// The backtrace when the target was created.
cmListFileBacktrace Backtrace;
- typedef std::map<std::string, cmHeadToLinkInterfaceMap>
- LinkInterfaceMapType;
- LinkInterfaceMapType LinkInterfaceMap;
- LinkInterfaceMapType LinkInterfaceUsageRequirementsOnlyMap;
-
typedef std::map<std::string, cmTarget::OutputInfo> OutputInfoMapType;
OutputInfoMapType OutputInfoMap;
@@ -510,8 +505,6 @@ void cmTarget::ClearLinkMaps()
{
this->LinkImplementationLanguageIsContextDependent = true;
this->Internal->LinkImplMap.clear();
- this->Internal->LinkInterfaceMap.clear();
- this->Internal->LinkInterfaceUsageRequirementsOnlyMap.clear();
this->Internal->SourceFilesMap.clear();
}
@@ -4104,64 +4097,6 @@ void cmTarget::ComputeImportInfo(std::string const& desired_config,
}
}
-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 *
-cmTarget::GetImportLinkInterface(const std::string& config,
- cmTarget const* headTarget,
- bool usage_requirements_only) const
-{
- cmTarget::ImportInfo const* info = this->GetImportInfo(config);
- if(!info)
- {
- return 0;
- }
-
- std::string CONFIG = cmSystemTools::UpperCase(config);
- cmHeadToLinkInterfaceMap& hm =
- (usage_requirements_only ?
- this->GetHeadToLinkInterfaceUsageRequirementsMap(config) :
- this->GetHeadToLinkInterfaceMap(config));
-
- // If the link interface does not depend on the head target
- // then return the one we computed first.
- if(!hm.empty() && !hm.begin()->second.HadHeadSensitiveCondition)
- {
- return &hm.begin()->second;
- }
-
- cmOptionalLinkInterface& iface = hm[headTarget];
- if(!iface.AllDone)
- {
- iface.AllDone = true;
- iface.Multiplicity = info->Multiplicity;
- cmSystemTools::ExpandListArgument(info->Languages, iface.Languages);
- this->ExpandLinkItems(info->LibrariesProp, info->Libraries, config,
- headTarget, usage_requirements_only,
- iface.Libraries,
- iface.HadHeadSensitiveCondition);
- std::vector<std::string> deps;
- cmSystemTools::ExpandListArgument(info->SharedDeps, deps);
- this->LookupLinkItems(deps, iface.SharedDeps);
- }
-
- return &iface;
-}
-
//----------------------------------------------------------------------------
void cmTargetInternals::AddInterfaceEntries(
cmTarget const* thisTarget, std::string const& config,
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 985e958..25de6a6 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -233,11 +233,6 @@ public:
void GetObjectLibrariesCMP0026(std::vector<cmTarget*>& objlibs) const;
- cmHeadToLinkInterfaceMap&
- GetHeadToLinkInterfaceMap(std::string const& config) const;
- cmHeadToLinkInterfaceMap& GetHeadToLinkInterfaceUsageRequirementsMap(
- std::string const& config) const;
-
struct LinkImplementation: public cmLinkImplementationLibraries
{
// Languages whose runtime libraries must be linked.
@@ -559,11 +554,6 @@ private:
void ComputeImportInfo(std::string const& desired_config,
ImportInfo& info) const;
-
- cmLinkInterface const*
- GetImportLinkInterface(const std::string& config, cmTarget const* head,
- bool usage_requirements_only) const;
-
cmLinkImplementationLibraries const*
GetLinkImplementationLibrariesInternal(const std::string& config,
cmTarget const* head) const;