summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmTarget.cxx')
-rw-r--r--Source/cmTarget.cxx29
1 files changed, 29 insertions, 0 deletions
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 6bc4273..0ad4ffb 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -181,6 +181,10 @@ public:
std::vector<TargetPropertyEntry*> SourceEntries;
std::vector<cmValueWithOrigin> LinkImplementationPropertyEntries;
+ void AddInterfaceEntries(
+ cmTarget const* thisTarget, std::string const& config,
+ std::string const& prop, std::vector<TargetPropertyEntry*>& entries);
+
std::map<std::string, std::vector<TargetPropertyEntry*> >
CachedLinkInterfaceIncludeDirectoriesEntries;
std::map<std::string, std::vector<TargetPropertyEntry*> >
@@ -6550,6 +6554,31 @@ void cmTargetInternals::ComputeLinkInterface(cmTarget const* thisTarget,
}
//----------------------------------------------------------------------------
+void cmTargetInternals::AddInterfaceEntries(
+ cmTarget const* thisTarget, std::string const& config,
+ std::string const& prop, std::vector<TargetPropertyEntry*>& entries)
+{
+ if(cmTarget::LinkImplementation const* impl =
+ thisTarget->GetLinkImplementationLibraries(config))
+ {
+ for (std::vector<cmLinkImplItem>::const_iterator
+ it = impl->Libraries.begin(), end = impl->Libraries.end();
+ it != end; ++it)
+ {
+ if(it->Target)
+ {
+ std::string genex =
+ "$<TARGET_PROPERTY:" + *it + "," + prop + ">";
+ cmGeneratorExpression ge(&it->Backtrace);
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> cge = ge.Parse(genex);
+ entries.push_back(
+ new cmTargetInternals::TargetPropertyEntry(cge, *it));
+ }
+ }
+ }
+}
+
+//----------------------------------------------------------------------------
cmTarget::LinkImplementation const*
cmTarget::GetLinkImplementation(const std::string& config) const
{