diff options
author | Jake Petroules <jake.petroules@qt.io> | 2017-05-12 18:50:50 -0700 |
---|---|---|
committer | Jake Petroules <jake.petroules@qt.io> | 2017-06-13 15:47:18 +0000 |
commit | 8b5e5af31e7c0860f8cf4f8fa50e7b322cadca62 (patch) | |
tree | 36a7e2fc38c7571cdf7e4c6b6449754e39cb993c /src/lib/corelib/tools/projectgeneratormanager.cpp | |
parent | d5dc7a2571027168d1a74cbb2578848dc843e20e (diff) |
Transform the scanner plugin manager into a true generic plugin manager
...and fit the generator plugins into this new plugin structure.
Plugins are now handled entirely by the build system in a generic manner
and no part of qbscore (code or build files) has a direct reference to
any plugin regardless of whether qbs is being built as shared or static
libraries.
Change-Id: I4a20546ce275df71083ee22c2cb67f781c4de764
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/tools/projectgeneratormanager.cpp')
-rw-r--r-- | src/lib/corelib/tools/projectgeneratormanager.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp index 9d2e1ae7c..3991adfb9 100644 --- a/src/lib/corelib/tools/projectgeneratormanager.cpp +++ b/src/lib/corelib/tools/projectgeneratormanager.cpp @@ -47,10 +47,6 @@ #include <QtCore/qcoreapplication.h> #include <QtCore/qdiriterator.h> -#include <QtCore/qlibrary.h> - -#include "generators/clangcompilationdb/clangcompilationdbgenerator.h" -#include "generators/visualstudio/visualstudiogenerator.h" namespace qbs { @@ -58,10 +54,6 @@ using namespace Internal; ProjectGeneratorManager::~ProjectGeneratorManager() { - for (QLibrary * const lib : qAsConst(m_libs)) { - lib->unload(); - delete lib; - } } ProjectGeneratorManager *ProjectGeneratorManager::instance() @@ -72,12 +64,6 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() ProjectGeneratorManager::ProjectGeneratorManager() { - std::vector<std::shared_ptr<ProjectGenerator> > generators; - generators.push_back(std::make_shared<ClangCompilationDatabaseGenerator>()); - const auto vsGenerators = qbs::VisualStudioGenerator::createGeneratorList(); - std::copy(vsGenerators.cbegin(), vsGenerators.cend(), std::back_inserter(generators)); - for (const auto &generator : qAsConst(generators)) - m_generators[generator->generatorName()] = generator; } QStringList ProjectGeneratorManager::loadedGeneratorNames() @@ -90,4 +76,10 @@ std::shared_ptr<ProjectGenerator> ProjectGeneratorManager::findGenerator(const Q return instance()->m_generators.value(generatorName); } +void ProjectGeneratorManager::registerGenerator(const std::shared_ptr<ProjectGenerator> &generator) +{ + if (!findGenerator(generator->generatorName())) + instance()->m_generators.insert(generator->generatorName(), generator); +} + } // namespace qbs |