mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
cmCPackGeneratorFactory: rule of zero
This commit is contained in:

committed by
Kyle Edwards

parent
e6ddb57479
commit
c9c1eb99fe
@@ -6,7 +6,6 @@
|
||||
#include <utility>
|
||||
|
||||
#include "IFW/cmCPackIFWGenerator.h"
|
||||
#include "cmAlgorithms.h"
|
||||
#ifdef HAVE_FREEBSD_PKG
|
||||
# include "cmCPackFreeBSDGenerator.h"
|
||||
#endif
|
||||
@@ -138,31 +137,19 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
|
||||
#endif
|
||||
}
|
||||
|
||||
cmCPackGeneratorFactory::~cmCPackGeneratorFactory()
|
||||
{
|
||||
cmDeleteAll(this->Generators);
|
||||
}
|
||||
|
||||
cmCPackGenerator* cmCPackGeneratorFactory::NewGenerator(
|
||||
const std::string& name)
|
||||
{
|
||||
cmCPackGenerator* gen = this->NewGeneratorInternal(name);
|
||||
if (!gen) {
|
||||
return nullptr;
|
||||
}
|
||||
this->Generators.push_back(gen);
|
||||
gen->SetLogger(this->Logger);
|
||||
return gen;
|
||||
}
|
||||
|
||||
cmCPackGenerator* cmCPackGeneratorFactory::NewGeneratorInternal(
|
||||
std::unique_ptr<cmCPackGenerator> cmCPackGeneratorFactory::NewGenerator(
|
||||
const std::string& name)
|
||||
{
|
||||
auto it = this->GeneratorCreators.find(name);
|
||||
if (it == this->GeneratorCreators.end()) {
|
||||
return nullptr;
|
||||
}
|
||||
return (it->second)();
|
||||
std::unique_ptr<cmCPackGenerator> gen(it->second());
|
||||
if (!gen) {
|
||||
return nullptr;
|
||||
}
|
||||
gen->SetLogger(this->Logger);
|
||||
return gen;
|
||||
}
|
||||
|
||||
void cmCPackGeneratorFactory::RegisterGenerator(
|
||||
|
@@ -6,8 +6,8 @@
|
||||
#include "cmConfigure.h" // IWYU pragma: keep
|
||||
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
class cmCPackGenerator;
|
||||
class cmCPackLog;
|
||||
@@ -20,14 +20,9 @@ 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);
|
||||
std::unique_ptr<cmCPackGenerator> NewGenerator(const std::string& name);
|
||||
|
||||
using CreateGeneratorCall = cmCPackGenerator*();
|
||||
|
||||
@@ -44,9 +39,6 @@ public:
|
||||
}
|
||||
|
||||
private:
|
||||
cmCPackGenerator* NewGeneratorInternal(const std::string& name);
|
||||
std::vector<cmCPackGenerator*> Generators;
|
||||
|
||||
using t_GeneratorCreatorsMap = std::map<std::string, CreateGeneratorCall*>;
|
||||
t_GeneratorCreatorsMap GeneratorCreators;
|
||||
DescriptionsMap GeneratorDescriptions;
|
||||
|
@@ -25,6 +25,7 @@
|
||||
#include <cstddef>
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
@@ -237,7 +238,6 @@ int main(int argc, char const* const* argv)
|
||||
|
||||
cmCPackGeneratorFactory generators;
|
||||
generators.SetLogger(&log);
|
||||
cmCPackGenerator* cpackGenerator = nullptr;
|
||||
|
||||
cmDocumentation doc;
|
||||
doc.addCPackStandardDocSections();
|
||||
@@ -360,7 +360,8 @@ int main(int argc, char const* const* argv)
|
||||
parsed = 0;
|
||||
}
|
||||
if (parsed) {
|
||||
cpackGenerator = generators.NewGenerator(gen);
|
||||
std::unique_ptr<cmCPackGenerator> cpackGenerator =
|
||||
generators.NewGenerator(gen);
|
||||
if (cpackGenerator) {
|
||||
cpackGenerator->SetTrace(trace);
|
||||
cpackGenerator->SetTraceExpand(traceExpand);
|
||||
|
Reference in New Issue
Block a user