diff options
author | Patrick Gansterer <paroga@paroga.com> | 2012-11-19 14:52:46 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-11-19 17:54:34 (GMT) |
commit | 30a695021ccc6583493b3e7f9992ad428cd2855f (patch) | |
tree | 6d04fcb748dee78c17cd8d81c1ef721e119571ae | |
parent | e8f841473bcefc618ddf6712567e624156e88399 (diff) | |
download | CMake-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.h | 7 | ||||
-rw-r--r-- | Source/cmGlobalXCodeGenerator.cxx | 3 | ||||
-rw-r--r-- | Source/cmake.cxx | 2 |
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(); |