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
@@ -87,31 +87,28 @@ GenericBuildConfigurationFactory::~GenericBuildConfigurationFactory()
|
||||
{
|
||||
}
|
||||
|
||||
bool GenericBuildConfigurationFactory::canCreate(const Target *parent) const
|
||||
int GenericBuildConfigurationFactory::priority(const Target *parent) const
|
||||
{
|
||||
return canHandle(parent);
|
||||
return canHandle(parent) ? 0 : -1;
|
||||
}
|
||||
|
||||
QList<BuildInfo *> GenericBuildConfigurationFactory::availableBuilds(const Target *parent) const
|
||||
{
|
||||
QList<ProjectExplorer::BuildInfo *> result;
|
||||
QTC_ASSERT(canCreate(parent), return result);
|
||||
|
||||
BuildInfo *info = createBuildInfo(parent->kit(), Utils::FileName::fromString(parent->project()->projectDirectory()));
|
||||
result << info;
|
||||
return result;
|
||||
}
|
||||
|
||||
bool GenericBuildConfigurationFactory::canSetup(const Kit *k, const QString &projectPath) const
|
||||
int GenericBuildConfigurationFactory::priority(const Kit *k, const QString &projectPath) const
|
||||
{
|
||||
return k && Core::MimeDatabase::findByFile(QFileInfo(projectPath))
|
||||
.matchesType(QLatin1String(Constants::GENERICMIMETYPE));
|
||||
return (k && Core::MimeDatabase::findByFile(QFileInfo(projectPath))
|
||||
.matchesType(QLatin1String(Constants::GENERICMIMETYPE))) ? 0 : -1;
|
||||
}
|
||||
|
||||
QList<BuildInfo *> GenericBuildConfigurationFactory::availableSetups(const Kit *k, const QString &projectPath) const
|
||||
{
|
||||
QList<BuildInfo *> result;
|
||||
QTC_ASSERT(canSetup(k, projectPath), return result);
|
||||
BuildInfo *info = createBuildInfo(k, Utils::FileName::fromString(ProjectExplorer::Project::projectDirectory(projectPath)));
|
||||
//: The name of the build configuration created by default for a generic project.
|
||||
info->displayName = tr("Default");
|
||||
@@ -121,7 +118,6 @@ QList<BuildInfo *> GenericBuildConfigurationFactory::availableSetups(const Kit *
|
||||
|
||||
BuildConfiguration *GenericBuildConfigurationFactory::create(Target *parent, const BuildInfo *info) const
|
||||
{
|
||||
QTC_ASSERT(canCreate(parent), return 0);
|
||||
QTC_ASSERT(info->factory() == this, return 0);
|
||||
QTC_ASSERT(info->kitId == parent->kit()->id(), return 0);
|
||||
QTC_ASSERT(!info->displayName.isEmpty(), return 0);
|
||||
|
||||
@@ -72,9 +72,9 @@ public:
|
||||
explicit GenericBuildConfigurationFactory(QObject *parent = 0);
|
||||
~GenericBuildConfigurationFactory();
|
||||
|
||||
bool canCreate(const ProjectExplorer::Target *parent) const;
|
||||
int priority(const ProjectExplorer::Target *parent) const;
|
||||
QList<ProjectExplorer::BuildInfo *> availableBuilds(const ProjectExplorer::Target *parent) const;
|
||||
bool canSetup(const ProjectExplorer::Kit *k, const QString &projectPath) const;
|
||||
int priority(const ProjectExplorer::Kit *k, const QString &projectPath) const;
|
||||
QList<ProjectExplorer::BuildInfo *> availableSetups(const ProjectExplorer::Kit *k,
|
||||
const QString &projectPath) const;
|
||||
ProjectExplorer::BuildConfiguration *create(ProjectExplorer::Target *parent,
|
||||
|
||||
Reference in New Issue
Block a user