summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Gansterer <paroga@paroga.com>2012-11-19 14:52:46 (GMT)
committerBrad King <brad.king@kitware.com>2012-11-19 17:54:34 (GMT)
commit30a695021ccc6583493b3e7f9992ad428cd2855f (patch)
tree6d04fcb748dee78c17cd8d81c1ef721e119571ae
parente8f841473bcefc618ddf6712567e624156e88399 (diff)
downloadCMake-30a695021ccc6583493b3e7f9992ad428cd2855f.zip
CMake-30a695021ccc6583493b3e7f9992ad428cd2855f.tar.gz
CMake-30a695021ccc6583493b3e7f9992ad428cd2855f.tar.bz2
Add cmGlobalGeneratorFactory::GetGenerators()
This allows cmGlobalGeneratorFactory to create more than one type of cmGlobalGenerator in a next step.
-rw-r--r--Source/cmGlobalGeneratorFactory.h7
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx3
-rw-r--r--Source/cmake.cxx2
3 files changed, 11 insertions, 1 deletions
diff --git a/Source/cmGlobalGeneratorFactory.h b/Source/cmGlobalGeneratorFactory.h
index 05c8420..9d8f7a0 100644
--- a/Source/cmGlobalGeneratorFactory.h
+++ b/Source/cmGlobalGeneratorFactory.h
@@ -33,6 +33,9 @@ public:
/** Get the documentation entry for this factory */
virtual void GetDocumentation(cmDocumentationEntry& entry) const = 0;
+
+ /** Get the names of the current registered generators */
+ virtual void GetGenerators(std::vector<std::string>& names) const = 0;
};
template<class T>
@@ -46,6 +49,10 @@ public:
/** Get the documentation entry for this factory */
virtual void GetDocumentation(cmDocumentationEntry& entry) const {
T().GetDocumentation(entry); }
+
+ /** Get the names of the current registered generators */
+ virtual void GetGenerators(std::vector<std::string>& names) const {
+ names.push_back(T::GetActualName()); }
};
#endif
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 4b07a36..59ca652 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -120,6 +120,9 @@ public:
virtual void GetDocumentation(cmDocumentationEntry& entry) const {
cmGlobalXCodeGenerator().GetDocumentation(entry); }
+
+ virtual void GetGenerators(std::vector<std::string>& names) const {
+ names.push_back(cmGlobalXCodeGenerator::GetActualName()); }
};
//----------------------------------------------------------------------------
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 08a322f..2d531ba 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1877,7 +1877,7 @@ void cmake::GetRegisteredGenerators(std::vector<std::string>& names)
for(RegisteredGeneratorsMap::const_iterator i = this->Generators.begin();
i != this->Generators.end(); ++i)
{
- names.push_back(i->first);
+ i->second->GetGenerators(names);
}
for(RegisteredExtraGeneratorsMap::const_iterator
i = this->ExtraGenerators.begin();