summaryrefslogtreecommitdiff
path: root/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-07-24 12:42:24 +0200
committerMichal Klocek <michal.klocek@digia.com>2013-10-01 15:50:30 +0200
commitac6a3fd5c70d7f999a739d229bdea18eb45eb240 (patch)
treeee7ff89c05d46e1ccaf47e96c4224310d3e11212 /src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
parent321ac6cc51009ed93ba4d6dbc3b684b3f00e437e (diff)
downloadqt-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.cpp14
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);