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/qt4projectmanager/qt4project.cpp | |
parent | 95828d4691a993e552843738114507a5a30efe2a (diff) |
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/qt4projectmanager/qt4project.cpp')
-rw-r--r-- | src/plugins/qt4projectmanager/qt4project.cpp | 56 |
1 files changed, 15 insertions, 41 deletions
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 08086eca6f..2e48fcc904 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -30,12 +30,13 @@ #include "qt4project.h" #include "qt4projectmanager.h" +#include "qmakeprojectimporter.h" +#include "qmakebuildinfo.h" #include "qmakestep.h" #include "qt4nodes.h" #include "qt4projectmanagerconstants.h" #include "qt4buildconfiguration.h" #include "findqt4profiles.h" -#include "buildconfigurationinfo.h" #include "qt4projectmanager/wizards/abstractmobileapp.h" #include "qt4projectmanager/wizards/qtquickapp.h" #include "qt4projectmanager/wizards/html5app.h" @@ -380,32 +381,6 @@ void Qt4Project::updateFileList() } } -bool Qt4Project::setupTarget(ProjectExplorer::Target *t) -{ - QList<BuildConfigurationInfo> infoList - = Qt4BuildConfigurationFactory::availableBuildConfigurations(t->kit(), m_fileInfo->filePath()); - setupTarget(t, infoList); - return true; -} - -void Qt4Project::setupTarget(ProjectExplorer::Target *t, const QList<BuildConfigurationInfo> &infoList) -{ - // Build Configurations: - foreach (const BuildConfigurationInfo &info, infoList) { - QString name = info.buildConfig & QtSupport::BaseQtVersion::DebugBuild - ? tr("Debug") : tr("Release"); - Qt4BuildConfiguration *bc - = Qt4BuildConfiguration::setup(t, name, name, - info.buildConfig, info.additionalArguments, - info.directory, info.importing); - t->addBuildConfiguration(bc); - } - - // Deploy Configurations: - t->updateDefaultDeployConfigurations(); - // Do not create Run Configurations: Those will be generated later anyway. -} - bool Qt4Project::fromMap(const QVariantMap &map) { if (!Project::fromMap(map)) @@ -1389,6 +1364,7 @@ bool Qt4Project::needsConfiguration() const void Qt4Project::configureAsExampleProject(const QStringList &platforms) { + QList<const BuildInfo *> infoList; QList<Kit *> kits = ProjectExplorer::KitManager::kits(); foreach (Kit *k, kits) { QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k); @@ -1397,12 +1373,14 @@ void Qt4Project::configureAsExampleProject(const QStringList &platforms) if (!platforms.isEmpty() && !platforms.contains(version->platformName())) continue; - QList<BuildConfigurationInfo> infoList - = Qt4BuildConfigurationFactory::availableBuildConfigurations(k, projectFilePath()); - if (infoList.isEmpty()) + IBuildConfigurationFactory *factory = IBuildConfigurationFactory::find(k, projectFilePath()); + if (!factory) continue; - addTarget(createTarget(k, infoList)); + foreach (BuildInfo *info, factory->availableSetups(k, projectFilePath())) + infoList << info; } + setup(infoList); + qDeleteAll(infoList); ProjectExplorer::ProjectExplorerPlugin::instance()->requestProjectModeUpdate(this); } @@ -1456,16 +1434,6 @@ QString Qt4Project::buildNameFor(const Kit *k) return k->fileSystemFriendlyName(); } -Target *Qt4Project::createTarget(Kit *k, const QList<BuildConfigurationInfo> &infoList) -{ - if (target(k)) - return 0; - - Target *t = new Target(this, k); - setupTarget(t, infoList); - return t; -} - void Qt4Project::updateBuildSystemData() { Target * const target = activeTarget(); @@ -1653,6 +1621,12 @@ void Qt4Project::emitBuildDirectoryInitialized() { emit buildDirectoryInitialized(); } + +ProjectImporter *Qt4Project::createProjectImporter() const +{ + return new QmakeProjectImporter(projectFilePath()); +} + } // namespace Qt4ProjectManager #include "qt4project.moc" |