summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2016-10-12 22:18:25 (GMT)
committerStephen Kelly <steveire@gmail.com>2016-10-15 09:14:21 (GMT)
commita0a720e6a70133e361762101ce69a0b3f1ab244d (patch)
tree1955ca0f1f308c9f34a02707348ece3d1a4388cb
parent637e3f3ee131cf30f7337db06314f4a1af22c245 (diff)
downloadCMake-a0a720e6a70133e361762101ce69a0b3f1ab244d.zip
CMake-a0a720e6a70133e361762101ce69a0b3f1ab244d.tar.gz
CMake-a0a720e6a70133e361762101ce69a0b3f1ab244d.tar.bz2
cm{,Generator}Target: Add global generator accessors
Provide 'static polymorphism' between the types in this aspect so that they can be used indiscriminately in a C++ template.
-rw-r--r--Source/cmGeneratorTarget.cxx5
-rw-r--r--Source/cmGeneratorTarget.h2
-rw-r--r--Source/cmTarget.cxx5
-rw-r--r--Source/cmTarget.h3
4 files changed, 15 insertions, 0 deletions
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index d622ad9..fb732a6 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -320,6 +320,11 @@ cmGeneratorTarget::~cmGeneratorTarget()
cmDeleteAll(this->LinkInformation);
}
+cmGlobalGenerator* cmGeneratorTarget::GetGlobalGenerator() const
+{
+ return this->GetLocalGenerator()->GetGlobalGenerator();
+}
+
cmLocalGenerator* cmGeneratorTarget::GetLocalGenerator() const
{
return this->LocalGenerator;
diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h
index 68ffd5c..bfbd790 100644
--- a/Source/cmGeneratorTarget.h
+++ b/Source/cmGeneratorTarget.h
@@ -32,6 +32,8 @@ public:
cmLocalGenerator* GetLocalGenerator() const;
+ cmGlobalGenerator* GetGlobalGenerator() const;
+
bool IsImported() const;
bool IsImportedGloballyVisible() const;
const char* GetLocation(const std::string& config) const;
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 52f1d04..76a12d4 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -272,6 +272,11 @@ cmTarget::cmTarget(std::string const& name, cmState::TargetType type,
}
}
+cmGlobalGenerator* cmTarget::GetGlobalGenerator() const
+{
+ return this->GetMakefile()->GetGlobalGenerator();
+}
+
void cmTarget::AddUtility(const std::string& u, cmMakefile* makefile)
{
if (this->Utilities.insert(u).second && makefile) {
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 84f43b3..2d259ed 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -30,6 +30,7 @@
class cmMakefile;
class cmSourceFile;
+class cmGlobalGenerator;
class cmTargetInternals;
class cmTargetInternalPointer
@@ -76,6 +77,8 @@ public:
*/
cmState::TargetType GetType() const { return this->TargetTypeValue; }
+ cmGlobalGenerator* GetGlobalGenerator() const;
+
///! Set/Get the name of the target
const std::string& GetName() const { return this->Name; }