diff options
author | Tobias Hunger <tobias.hunger@digia.com> | 2013-07-24 12:42:24 +0200 |
---|---|---|
committer | Michal Klocek <michal.klocek@digia.com> | 2013-10-01 15:50:30 +0200 |
commit | ac6a3fd5c70d7f999a739d229bdea18eb45eb240 (patch) | |
tree | ee7ff89c05d46e1ccaf47e96c4224310d3e11212 /src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | |
parent | 321ac6cc51009ed93ba4d6dbc3b684b3f00e437e (diff) | |
download | qt-creator-ac6a3fd5c70d7f999a739d229bdea18eb45eb240.tar.gz |
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>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 9d7179dc6c..9a63ccb828 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -122,15 +122,14 @@ CMakeBuildConfigurationFactory::~CMakeBuildConfigurationFactory() { } -bool CMakeBuildConfigurationFactory::canCreate(const ProjectExplorer::Target *parent) const +int CMakeBuildConfigurationFactory::priority(const ProjectExplorer::Target *parent) const { - return canHandle(parent); + return canHandle(parent) ? 0 : -1; } QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableBuilds(const ProjectExplorer::Target *parent) const { QList<ProjectExplorer::BuildInfo *> result; - QTC_ASSERT(canCreate(parent), return result); CMakeBuildInfo *info = createBuildInfo(parent->kit(), parent->project()->projectDirectory()); @@ -138,18 +137,16 @@ QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableBui return result; } -bool CMakeBuildConfigurationFactory::canSetup(const ProjectExplorer::Kit *k, const QString &projectPath) const +int CMakeBuildConfigurationFactory::priority(const ProjectExplorer::Kit *k, const QString &projectPath) const { - return k && Core::MimeDatabase::findByFile(QFileInfo(projectPath)) - .matchesType(QLatin1String(Constants::CMAKEMIMETYPE)); + return (k && Core::MimeDatabase::findByFile(QFileInfo(projectPath)) + .matchesType(QLatin1String(Constants::CMAKEMIMETYPE))) ? 0 : -1; } QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableSetups(const ProjectExplorer::Kit *k, const QString &projectPath) const { QList<ProjectExplorer::BuildInfo *> result; - QTC_ASSERT(canSetup(k, projectPath), return result); - CMakeBuildInfo *info = createBuildInfo(k, ProjectExplorer::Project::projectDirectory(projectPath)); //: The name of the build configuration created by default for a cmake project. info->displayName = tr("Default"); @@ -163,7 +160,6 @@ QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableSet ProjectExplorer::BuildConfiguration *CMakeBuildConfigurationFactory::create(ProjectExplorer::Target *parent, const ProjectExplorer::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); |