summaryrefslogtreecommitdiffstats
path: root/Source/cmGeneratorTarget.h
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2015-08-04 17:19:49 (GMT)
committerStephen Kelly <steveire@gmail.com>2015-08-05 16:20:49 (GMT)
commitf8076644ce21c5c20cb0d368d25c191a05364481 (patch)
tree693a0400ceac68d6eb5550e29ec86f9f6d80b946 /Source/cmGeneratorTarget.h
parent7c809fa2a675b7e669e76683f73397e38dd22999 (diff)
downloadCMake-f8076644ce21c5c20cb0d368d25c191a05364481.zip
CMake-f8076644ce21c5c20cb0d368d25c191a05364481.tar.gz
CMake-f8076644ce21c5c20cb0d368d25c191a05364481.tar.bz2
cmGeneratorTarget: Move GetLinkClosure from cmTarget.
Diffstat (limited to 'Source/cmGeneratorTarget.h')
-rw-r--r--Source/cmGeneratorTarget.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 41fb848..a1193a6 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -165,6 +165,20 @@ public:
std::string GetModuleDefinitionFile(const std::string& config) const;
+ /** Link information from the transitive closure of the link
+ implementation and the interfaces of its dependencies. */
+ struct LinkClosure
+ {
+ // The preferred linker language.
+ std::string LinkerLanguage;
+
+ // Languages whose runtime libraries must be linked.
+ std::vector<std::string> Languages;
+ };
+
+ LinkClosure const* GetLinkClosure(const std::string& config) const;
+ void ComputeLinkClosure(const std::string& config, LinkClosure& lc) const;
+
/** Full path with trailing slash to the top-level directory
holding object files for this target. Includes the build
time config name placeholder if needed for the generator. */
@@ -301,6 +315,9 @@ private:
std::string& outPrefix, std::string& outBase,
std::string& outSuffix) const;
+ typedef std::map<std::string, LinkClosure> LinkClosureMapType;
+ mutable LinkClosureMapType LinkClosureMap;
+
struct CompatibleInterfacesBase
{
std::set<std::string> PropsBool;