mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-05 13:50:10 -05:00
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.
This commit is contained in:
@@ -38,24 +38,30 @@ http://www.sublimetext.com/docs/2/projects.html
|
||||
http://sublimetext.info/docs/en/reference/build_systems.html
|
||||
*/
|
||||
|
||||
void cmExtraSublimeTextGenerator::GetDocumentation(cmDocumentationEntry& entry,
|
||||
const std::string&) const
|
||||
cmExternalMakefileProjectGeneratorFactory*
|
||||
cmExtraSublimeTextGenerator::GetFactory()
|
||||
{
|
||||
entry.Name = this->GetName();
|
||||
entry.Brief = "Generates Sublime Text 2 project files.";
|
||||
static cmExternalMakefileProjectGeneratorSimpleFactory<
|
||||
cmExtraSublimeTextGenerator>
|
||||
factory("Sublime Text 2", "Generates Sublime Text 2 project files.");
|
||||
|
||||
if (factory.GetSupportedGlobalGenerators().empty()) {
|
||||
#if defined(_WIN32)
|
||||
factory.AddSupportedGlobalGenerator("MinGW Makefiles");
|
||||
factory.AddSupportedGlobalGenerator("NMake Makefiles");
|
||||
// disable until somebody actually tests it:
|
||||
// factory.AddSupportedGlobalGenerator("MSYS Makefiles");
|
||||
#endif
|
||||
factory.AddSupportedGlobalGenerator("Ninja");
|
||||
factory.AddSupportedGlobalGenerator("Unix Makefiles");
|
||||
}
|
||||
|
||||
return &factory;
|
||||
}
|
||||
|
||||
cmExtraSublimeTextGenerator::cmExtraSublimeTextGenerator()
|
||||
: cmExternalMakefileProjectGenerator()
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
this->SupportedGlobalGenerators.push_back("MinGW Makefiles");
|
||||
this->SupportedGlobalGenerators.push_back("NMake Makefiles");
|
||||
// disable until somebody actually tests it:
|
||||
// this->SupportedGlobalGenerators.push_back("MSYS Makefiles");
|
||||
#endif
|
||||
this->SupportedGlobalGenerators.push_back("Ninja");
|
||||
this->SupportedGlobalGenerators.push_back("Unix Makefiles");
|
||||
}
|
||||
|
||||
void cmExtraSublimeTextGenerator::Generate()
|
||||
|
||||
Reference in New Issue
Block a user