aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/tools/projectgeneratormanager.cpp
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-05-12 18:50:50 -0700
committerJake Petroules <jake.petroules@qt.io>2017-06-13 15:47:18 +0000
commit8b5e5af31e7c0860f8cf4f8fa50e7b322cadca62 (patch)
tree36a7e2fc38c7571cdf7e4c6b6449754e39cb993c /src/lib/corelib/tools/projectgeneratormanager.cpp
parentd5dc7a2571027168d1a74cbb2578848dc843e20e (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.cpp20
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