mirror of
https://github.com/reactos/CMake.git
synced 2025-01-24 20:55:22 +00:00
ae5e97a005
They are unused, but if someone used them they would lead to problems since they would copy the internal raw pointers and the destructor would cause double delete
57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#ifndef cmCPackGeneratorFactory_h
|
|
#define cmCPackGeneratorFactory_h
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
class cmCPackGenerator;
|
|
class cmCPackLog;
|
|
|
|
/** \class cmCPackGeneratorFactory
|
|
* \brief A container for CPack generators
|
|
*
|
|
*/
|
|
class cmCPackGeneratorFactory
|
|
{
|
|
public:
|
|
cmCPackGeneratorFactory();
|
|
~cmCPackGeneratorFactory();
|
|
|
|
cmCPackGeneratorFactory(const cmCPackGeneratorFactory&) = delete;
|
|
cmCPackGeneratorFactory& operator=(const cmCPackGeneratorFactory&) = delete;
|
|
|
|
//! Get the generator
|
|
cmCPackGenerator* NewGenerator(const std::string& name);
|
|
void DeleteGenerator(cmCPackGenerator* gen);
|
|
|
|
typedef cmCPackGenerator* CreateGeneratorCall();
|
|
|
|
void RegisterGenerator(const std::string& name,
|
|
const char* generatorDescription,
|
|
CreateGeneratorCall* createGenerator);
|
|
|
|
void SetLogger(cmCPackLog* logger) { this->Logger = logger; }
|
|
|
|
typedef std::map<std::string, std::string> DescriptionsMap;
|
|
const DescriptionsMap& GetGeneratorsList() const
|
|
{
|
|
return this->GeneratorDescriptions;
|
|
}
|
|
|
|
private:
|
|
cmCPackGenerator* NewGeneratorInternal(const std::string& name);
|
|
std::vector<cmCPackGenerator*> Generators;
|
|
|
|
typedef std::map<std::string, CreateGeneratorCall*> t_GeneratorCreatorsMap;
|
|
t_GeneratorCreatorsMap GeneratorCreators;
|
|
DescriptionsMap GeneratorDescriptions;
|
|
cmCPackLog* Logger;
|
|
};
|
|
|
|
#endif
|