summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 37ab203..bbcdafc 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -35,6 +35,20 @@ struct cmTargetLinkInformationMap:
~cmTargetLinkInformationMap();
};
+struct cmTargetLinkInterface: public std::vector<std::string>
+{
+ typedef std::vector<std::string> derived;
+};
+
+struct cmTargetLinkInterfaceMap:
+ public std::map<cmStdString, cmTargetLinkInterface*>
+{
+ typedef std::map<cmStdString, cmTargetLinkInterface*> derived;
+ cmTargetLinkInterfaceMap() {}
+ cmTargetLinkInterfaceMap(cmTargetLinkInterfaceMap const& r);
+ ~cmTargetLinkInterfaceMap();
+};
+
/** \class cmTarget
* \brief Represent a library or executable target loaded from a makefile.
*
@@ -209,6 +223,12 @@ public:
std::vector<std::string> const*
GetImportedLinkLibraries(const char* config);
+ /** Get the library interface dependencies. This is the set of
+ libraries from which something that links to this target may
+ also receive symbols. Returns 0 if the user has not specified
+ such dependencies or for static libraries. */
+ cmTargetLinkInterface const* GetLinkInterface(const char* config);
+
/** Get the directory in which this target will be built. If the
configuration name is given then the generator will add its
subdirectory for that configuration. Otherwise just the canonical
@@ -476,6 +496,10 @@ private:
cmTargetLinkInformationMap LinkInformation;
+ // Link interface.
+ cmTargetLinkInterface* ComputeLinkInterface(const char* config);
+ cmTargetLinkInterfaceMap LinkInterface;
+
// The cmMakefile instance that owns this target. This should
// always be set.
cmMakefile* Makefile;