summaryrefslogtreecommitdiff
path: root/Source/cmExtraCodeLiteGenerator.cxx
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2016-07-20 18:28:39 +0200
committerBrad King <brad.king@kitware.com>2016-08-03 09:43:00 -0400
commita354f60ce07cd67bd60161824a4e74bf9068fea4 (patch)
tree14c272760205567469ddd856a99e98ace6282841 /Source/cmExtraCodeLiteGenerator.cxx
parentfd59f9ad519c1c311c54569133797d9061e90558 (diff)
downloadcmake-a354f60ce07cd67bd60161824a4e74bf9068fea4.tar.gz
Refactor extra generator registration to use factories
This will allow additional information about the availability and capabilities of extra generators to be queried without actually creating them. Instead of a static NewFactory() method like the main generator factories have, use a static GetFactory() method to get a pointer to a statically allocated extra generator factory. This simplifies memory management.
Diffstat (limited to 'Source/cmExtraCodeLiteGenerator.cxx')
-rw-r--r--Source/cmExtraCodeLiteGenerator.cxx28
1 files changed, 17 insertions, 11 deletions
diff --git a/Source/cmExtraCodeLiteGenerator.cxx b/Source/cmExtraCodeLiteGenerator.cxx
index dd10b656aa..eda6867427 100644
--- a/Source/cmExtraCodeLiteGenerator.cxx
+++ b/Source/cmExtraCodeLiteGenerator.cxx
@@ -27,24 +27,30 @@
#include <cmsys/SystemInformation.hxx>
#include <cmsys/SystemTools.hxx>
-void cmExtraCodeLiteGenerator::GetDocumentation(cmDocumentationEntry& entry,
- const std::string&) const
-{
- entry.Name = this->GetName();
- entry.Brief = "Generates CodeLite project files.";
-}
-
cmExtraCodeLiteGenerator::cmExtraCodeLiteGenerator()
: cmExternalMakefileProjectGenerator()
, ConfigName("NoConfig")
, CpuCount(2)
{
+}
+
+cmExternalMakefileProjectGeneratorFactory*
+cmExtraCodeLiteGenerator::GetFactory()
+{
+ static cmExternalMakefileProjectGeneratorSimpleFactory<
+ cmExtraCodeLiteGenerator>
+ factory("CodeLite", "Generates CodeLite project files.");
+
+ if (factory.GetSupportedGlobalGenerators().empty()) {
#if defined(_WIN32)
- this->SupportedGlobalGenerators.push_back("MinGW Makefiles");
- this->SupportedGlobalGenerators.push_back("NMake Makefiles");
+ factory.AddSupportedGlobalGenerator("MinGW Makefiles");
+ factory.AddSupportedGlobalGenerator("NMake Makefiles");
#endif
- this->SupportedGlobalGenerators.push_back("Ninja");
- this->SupportedGlobalGenerators.push_back("Unix Makefiles");
+ factory.AddSupportedGlobalGenerator("Ninja");
+ factory.AddSupportedGlobalGenerator("Unix Makefiles");
+ }
+
+ return &factory;
}
void cmExtraCodeLiteGenerator::Generate()