CMake/Source/cmExternalMakefileProjectGenerator.cxx
Tobias Hunger a354f60ce0 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.
2016-08-03 09:43:00 -04:00

70 lines
1.9 KiB
C++

/*============================================================================
CMake - Cross Platform Makefile Generator
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
Distributed under the OSI-approved BSD License (the "License");
see accompanying file Copyright.txt for details.
This software is distributed WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License for more information.
============================================================================*/
#include "cmExternalMakefileProjectGenerator.h"
#include <assert.h>
void cmExternalMakefileProjectGenerator::EnableLanguage(
std::vector<std::string> const&, cmMakefile*, bool)
{
}
std::string cmExternalMakefileProjectGenerator::CreateFullGeneratorName(
const std::string& globalGenerator, const std::string& extraGenerator)
{
std::string fullName;
if (!globalGenerator.empty()) {
if (!extraGenerator.empty()) {
fullName = extraGenerator;
fullName += " - ";
}
fullName += globalGenerator;
}
return fullName;
}
cmExternalMakefileProjectGeneratorFactory::
cmExternalMakefileProjectGeneratorFactory(const std::string& n,
const std::string& doc)
: Name(n)
, Documentation(doc)
{
}
cmExternalMakefileProjectGeneratorFactory::
~cmExternalMakefileProjectGeneratorFactory()
{
}
std::string cmExternalMakefileProjectGeneratorFactory::GetName() const
{
return this->Name;
}
std::string cmExternalMakefileProjectGeneratorFactory::GetDocumentation() const
{
return this->Documentation;
}
std::vector<std::string>
cmExternalMakefileProjectGeneratorFactory::GetSupportedGlobalGenerators() const
{
return this->SupportedGlobalGenerators;
}
void cmExternalMakefileProjectGeneratorFactory::AddSupportedGlobalGenerator(
const std::string& base)
{
this->SupportedGlobalGenerators.push_back(base);
}