forked from qt-creator/qt-creator
BuildConfigurationFactory: Introduce priorities
Introduce priorities for build configuration factories. This way plugins can register specialized build configuration factories, that e.g. can provide additional build steps. A negative priority signifies that a factory is not prepared to handle a request, the default build configuration factory shipped by the build system plugin will report a priority of 0. Add 100 to that for each specialization you add (e.g. a remote linux buildconfiguration factory would report 100, a specialization of that for mer will should report 200, etc.). Change-Id: I141a7a5a79166afdb7657d46eb7e86bd18d3abf6 Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Michal Klocek <michal.klocek@digia.com>
This commit is contained in:
committed by
Michal Klocek
parent
321ac6cc51
commit
ac6a3fd5c7
@@ -346,11 +346,16 @@ IBuildConfigurationFactory *IBuildConfigurationFactory::find(Kit *k, const QStri
|
||||
{
|
||||
QList<IBuildConfigurationFactory *> factories
|
||||
= ExtensionSystem::PluginManager::instance()->getObjects<IBuildConfigurationFactory>();
|
||||
foreach (IBuildConfigurationFactory *factory, factories) {
|
||||
if (factory->canSetup(k, projectPath))
|
||||
return factory;
|
||||
IBuildConfigurationFactory *factory = 0;
|
||||
int priority = -1;
|
||||
foreach (IBuildConfigurationFactory *i, factories) {
|
||||
int iPriority = i->priority(k, projectPath);
|
||||
if (iPriority > priority) {
|
||||
factory = i;
|
||||
priority = iPriority;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return factory;
|
||||
}
|
||||
|
||||
// create
|
||||
@@ -358,11 +363,16 @@ IBuildConfigurationFactory * IBuildConfigurationFactory::find(Target *parent)
|
||||
{
|
||||
QList<IBuildConfigurationFactory *> factories
|
||||
= ExtensionSystem::PluginManager::getObjects<IBuildConfigurationFactory>();
|
||||
foreach (IBuildConfigurationFactory *factory, factories) {
|
||||
if (factory->canCreate(parent))
|
||||
return factory;
|
||||
IBuildConfigurationFactory *factory = 0;
|
||||
int priority = -1;
|
||||
foreach (IBuildConfigurationFactory *i, factories) {
|
||||
int iPriority = i->priority(parent);
|
||||
if (iPriority > priority) {
|
||||
factory = i;
|
||||
priority = iPriority;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return factory;
|
||||
}
|
||||
|
||||
// clone
|
||||
|
||||
Reference in New Issue
Block a user