diff options
author | Tobias Hunger <tobias.hunger@digia.com> | 2013-08-13 10:52:57 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@digia.com> | 2013-09-27 14:34:43 +0200 |
commit | 921f86dfa748468a8d7e6bb7787aed8fb8b53da9 (patch) | |
tree | 717cc0cd5052ff7a75f27f11e5abb9143fd35447 /src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | |
parent | 95828d4691a993e552843738114507a5a30efe2a (diff) | |
download | qt-creator-921f86dfa748468a8d7e6bb7787aed8fb8b53da9.tar.gz |
TargetSetupPage: Generalize the page
Generalize the target setup page and move it into projectexplorer
Move the qmake specific code into a projectimporter class with
a specialization for qmake projects in the qt4projectmanager.
This change depends heavily on the BuildConfigurationFactory cleanups
done earlier and completes that change in such a way that generic
build configuration factories are now in theory possible. The
remaining problem is how to select the best factory of several that
claim to be able to handle a kit and that is left for the next patch.
Change-Id: I47134cb1938c52adebcdc1ddfe8dbf26abbbbeee
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 825d3e4d20..9d7179dc6c 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -132,7 +132,30 @@ QList<ProjectExplorer::BuildInfo *> CMakeBuildConfigurationFactory::availableBui QList<ProjectExplorer::BuildInfo *> result; QTC_ASSERT(canCreate(parent), return result); - CMakeBuildInfo *info = createBuildInfo(parent->kit(), parent->project()->projectDirectory()); + CMakeBuildInfo *info = createBuildInfo(parent->kit(), + parent->project()->projectDirectory()); + result << info; + return result; +} + +bool CMakeBuildConfigurationFactory::canSetup(const ProjectExplorer::Kit *k, const QString &projectPath) const +{ + return k && Core::MimeDatabase::findByFile(QFileInfo(projectPath)) + .matchesType(QLatin1String(Constants::CMAKEMIMETYPE)); +} + +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"); + info->buildDirectory + = Utils::FileName::fromString(CMakeProject::shadowBuildDirectory(projectPath, k, + info->displayName)); result << info; return result; } @@ -234,6 +257,7 @@ CMakeBuildInfo *CMakeBuildConfigurationFactory::createBuildInfo(const ProjectExp k->addToEnvironment(info->environment); info->useNinja = false; info->sourceDirectory = sourceDir; + info->supportsShadowBuild = true; return info; } |