summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-08-04 17:22:30 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-08-26 17:39:29 (GMT)
commit8bfb0c53dae93d697ca5d92ff79068af351fe56b (patch)
tree06d0663332a93454fde705ca6616110402c90c5c /Source
parent2cb3e5740269757f6f93d24a4d13570ee72de318 (diff)
downloadCMake-8bfb0c53dae93d697ca5d92ff79068af351fe56b.zip
CMake-8bfb0c53dae93d697ca5d92ff79068af351fe56b.tar.gz
CMake-8bfb0c53dae93d697ca5d92ff79068af351fe56b.tar.bz2
cmGeneratorTarget: Move link iface helpers from cmTarget.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmGeneratorTarget.cxx53
-rw-r--r--Source/cmGeneratorTarget.h8
-rw-r--r--Source/cmTarget.cxx45
-rw-r--r--Source/cmTarget.h8
4 files changed, 57 insertions, 57 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index c966e24..4250806 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -3363,6 +3363,51 @@ cmGeneratorTarget::ReportPropertyOrigin(const std::string &p,
}
//----------------------------------------------------------------------------
+void cmGeneratorTarget::LookupLinkItems(std::vector<std::string> const& names,
+ std::vector<cmLinkItem>& items) const
+{
+ for(std::vector<std::string>::const_iterator i = names.begin();
+ i != names.end(); ++i)
+ {
+ std::string name = this->Target->CheckCMP0004(*i);
+ if(name == this->GetName() || name.empty())
+ {
+ continue;
+ }
+ items.push_back(cmLinkItem(name, this->Target->FindTargetToLink(name)));
+ }
+}
+
+//----------------------------------------------------------------------------
+void cmGeneratorTarget::ExpandLinkItems(std::string const& prop,
+ std::string const& value,
+ std::string const& config,
+ cmTarget const* headTarget,
+ bool usage_requirements_only,
+ std::vector<cmLinkItem>& items,
+ bool& hadHeadSensitiveCondition) const
+{
+ cmGeneratorExpression ge;
+ cmGeneratorExpressionDAGChecker dagChecker(this->GetName(), prop, 0, 0);
+ // The $<LINK_ONLY> expression may be in a link interface to specify private
+ // link dependencies that are otherwise excluded from usage requirements.
+ if(usage_requirements_only)
+ {
+ dagChecker.SetTransitivePropertiesOnly();
+ }
+ std::vector<std::string> libs;
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
+ cmSystemTools::ExpandListArgument(cge->Evaluate(
+ this->Makefile,
+ config,
+ false,
+ headTarget,
+ this->Target, &dagChecker), libs);
+ this->LookupLinkItems(libs, items);
+ hadHeadSensitiveCondition = cge->GetHadHeadSensitiveCondition();
+}
+
+//----------------------------------------------------------------------------
cmLinkInterface const*
cmGeneratorTarget::GetLinkInterface(const std::string& config,
cmTarget const* head) const
@@ -3644,7 +3689,7 @@ cmGeneratorTarget::ComputeLinkInterfaceLibraries(
if(explicitLibraries)
{
// The interface libraries have been explicitly set.
- this->Target->ExpandLinkItems(linkIfaceProp, explicitLibraries,
+ this->ExpandLinkItems(linkIfaceProp, explicitLibraries,
config,
headTarget, usage_requirements_only,
iface.Libraries,
@@ -3673,7 +3718,7 @@ cmGeneratorTarget::ComputeLinkInterfaceLibraries(
if(const char* newExplicitLibraries = this->GetProperty(newProp))
{
bool hadHeadSensitiveConditionDummy = false;
- this->Target->ExpandLinkItems(newProp, newExplicitLibraries, config,
+ this->ExpandLinkItems(newProp, newExplicitLibraries, config,
headTarget, usage_requirements_only,
ifaceLibs, hadHeadSensitiveConditionDummy);
}
@@ -3737,14 +3782,14 @@ cmGeneratorTarget::GetImportLinkInterface(const std::string& config,
iface.AllDone = true;
iface.Multiplicity = info->Multiplicity;
cmSystemTools::ExpandListArgument(info->Languages, iface.Languages);
- this->Target->ExpandLinkItems(info->LibrariesProp, info->Libraries,
+ 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->Target->LookupLinkItems(deps, iface.SharedDeps);
+ this->LookupLinkItems(deps, iface.SharedDeps);
}
return &iface;
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 9c5adf6..2e0d5fe 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -404,6 +404,14 @@ private:
GetImportLinkInterface(const std::string& config, cmTarget const* head,
bool usage_requirements_only) const;
+ void ExpandLinkItems(std::string const& prop, std::string const& value,
+ std::string const& config, cmTarget const* headTarget,
+ bool usage_requirements_only,
+ std::vector<cmLinkItem>& items,
+ bool& hadHeadSensitiveCondition) const;
+ void LookupLinkItems(std::vector<std::string> const& names,
+ std::vector<cmLinkItem>& items) 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 8628583..be8d58e 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -3061,51 +3061,6 @@ bool cmTarget::GetPropertyAsBool(const std::string& prop) const
}
//----------------------------------------------------------------------------
-void cmTarget::ExpandLinkItems(std::string const& prop,
- std::string const& value,
- std::string const& config,
- cmTarget const* headTarget,
- bool usage_requirements_only,
- std::vector<cmLinkItem>& items,
- bool& hadHeadSensitiveCondition) const
-{
- cmGeneratorExpression ge;
- cmGeneratorExpressionDAGChecker dagChecker(this->GetName(), prop, 0, 0);
- // The $<LINK_ONLY> expression may be in a link interface to specify private
- // link dependencies that are otherwise excluded from usage requirements.
- if(usage_requirements_only)
- {
- dagChecker.SetTransitivePropertiesOnly();
- }
- std::vector<std::string> libs;
- cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(value);
- cmSystemTools::ExpandListArgument(cge->Evaluate(
- this->Makefile,
- config,
- false,
- headTarget,
- this, &dagChecker), libs);
- this->LookupLinkItems(libs, items);
- hadHeadSensitiveCondition = cge->GetHadHeadSensitiveCondition();
-}
-
-//----------------------------------------------------------------------------
-void cmTarget::LookupLinkItems(std::vector<std::string> const& names,
- std::vector<cmLinkItem>& items) const
-{
- for(std::vector<std::string>::const_iterator i = names.begin();
- i != names.end(); ++i)
- {
- std::string name = this->CheckCMP0004(*i);
- if(name == this->GetName() || name.empty())
- {
- continue;
- }
- items.push_back(cmLinkItem(name, this->FindTargetToLink(name)));
- }
-}
-
-//----------------------------------------------------------------------------
const char* cmTarget::GetSuffixVariableInternal(bool implib) const
{
switch(this->GetType())
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 25de6a6..103a7e8 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -558,14 +558,6 @@ private:
GetLinkImplementationLibrariesInternal(const std::string& config,
cmTarget const* head) const;
- void ExpandLinkItems(std::string const& prop, std::string const& value,
- std::string const& config, cmTarget const* headTarget,
- bool usage_requirements_only,
- std::vector<cmLinkItem>& items,
- bool& hadHeadSensitiveCondition) const;
- void LookupLinkItems(std::vector<std::string> const& names,
- std::vector<cmLinkItem>& items) const;
-
std::string ProcessSourceItemCMP0049(const std::string& s);
void ClearLinkMaps();