Provide 'static polymorphism' between the types in this aspect so that they can be used indiscriminately in a C++ template.
@@ -320,6 +320,11 @@ cmGeneratorTarget::~cmGeneratorTarget()
cmDeleteAll(this->LinkInformation);
}
+cmGlobalGenerator* cmGeneratorTarget::GetGlobalGenerator() const
+{
+ return this->GetLocalGenerator()->GetGlobalGenerator();
+}
+
cmLocalGenerator* cmGeneratorTarget::GetLocalGenerator() const
{
return this->LocalGenerator;
@@ -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;
@@ -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) {
@@ -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; }
///! Set/Get the name of the target
const std::string& GetName() const { return this->Name; }