aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qt4projectmanager/qt4project.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-08-13 10:52:57 +0200
committerTobias Hunger <tobias.hunger@digia.com>2013-09-27 14:34:43 +0200
commit921f86dfa748468a8d7e6bb7787aed8fb8b53da9 (patch)
tree717cc0cd5052ff7a75f27f11e5abb9143fd35447 /src/plugins/qt4projectmanager/qt4project.cpp
parent95828d4691a993e552843738114507a5a30efe2a (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.cpp56
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"