summaryrefslogtreecommitdiffstats
path: root/Source/cmTarget.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r--Source/cmTarget.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 63e8516..015a3a6 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -240,6 +240,9 @@ public:
other information needed by targets that link to this target. */
struct LinkInterface
{
+ // Languages whose runtime libraries must be linked.
+ std::vector<std::string> Languages;
+
// Libraries listed in the interface.
std::vector<std::string> Libraries;
@@ -259,6 +262,9 @@ public:
dependencies needed by the object files of the target. */
struct LinkImplementation
{
+ // Languages whose runtime libraries must be linked.
+ std::vector<std::string> Languages;
+
// Libraries linked directly in this configuration.
std::vector<std::string> Libraries;
@@ -268,6 +274,18 @@ public:
};
LinkImplementation const* GetLinkImplementation(const char* config);
+ /** 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 char* config);
+
/** Strip off leading and trailing whitespace from an item named in
the link dependencies of this target. */
std::string CheckCMP0004(std::string const& item);
@@ -535,6 +553,7 @@ private:
void ComputeLinkImplementation(const char* config,
LinkImplementation& impl);
+ void ComputeLinkClosure(const char* config, LinkClosure& lc);
// The cmMakefile instance that owns this target. This should
// always be set.