summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/projectexplorer/buildmanager.cpp5
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp1
-rw-r--r--src/plugins/projectexplorer/buildstep.h1
-rw-r--r--src/plugins/projectexplorer/buildstepspage.cpp24
-rw-r--r--src/plugins/projectexplorer/userfileaccessor.cpp93
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp11
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp4
-rw-r--r--src/plugins/qt4projectmanager/qt4target.cpp4
8 files changed, 131 insertions, 12 deletions
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index 257f99a07e..a912b9c07e 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -413,8 +413,11 @@ bool BuildManager::buildQueueAppend(QList<BuildStep *> steps)
void BuildManager::buildProjects(const QList<BuildConfiguration *> &configurations)
{
QList<BuildStep *> steps;
- foreach(BuildConfiguration *bc, configurations)
+ foreach(BuildConfiguration *bc, configurations) {
steps.append(bc->steps(BuildStep::Build));
+ // TODO: Verify that this is indeed what we want.
+ steps.append(bc->steps(BuildStep::Deploy));
+ }
bool success = buildQueueAppend(steps);
if (!success) {
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 5d0b8e5226..ff1138134f 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -250,6 +250,7 @@ void BuildSettingsWidget::updateBuildSettings()
addSubWidget(generalConfigWidget->displayName(), generalConfigWidget);
addSubWidget(tr("Build Steps"), new BuildStepsPage(m_target, BuildStep::Build));
+ addSubWidget(tr("Deploy Steps"), new BuildStepsPage(m_target, BuildStep::Deploy));
addSubWidget(tr("Clean Steps"), new BuildStepsPage(m_target, BuildStep::Clean));
QList<BuildConfigWidget *> subConfigWidgets = m_target->project()->subConfigWidgets();
diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h
index 571710828a..790646184f 100644
--- a/src/plugins/projectexplorer/buildstep.h
+++ b/src/plugins/projectexplorer/buildstep.h
@@ -75,6 +75,7 @@ public:
enum Type {
Build = 0,
Clean,
+ Deploy,
LastStepType
};
Q_ENUMS(Type)
diff --git a/src/plugins/projectexplorer/buildstepspage.cpp b/src/plugins/projectexplorer/buildstepspage.cpp
index 54b9be9563..7b2bd3d8dd 100644
--- a/src/plugins/projectexplorer/buildstepspage.cpp
+++ b/src/plugins/projectexplorer/buildstepspage.cpp
@@ -83,10 +83,16 @@ void BuildStepsPage::updateSummary()
QString BuildStepsPage::displayName() const
{
- if (m_type == BuildStep::Build)
+ switch(m_type) {
+ case BuildStep::Build:
return tr("Build Steps");
- else
+ case BuildStep::Deploy:
+ return tr("Deploy Steps");
+ case BuildStep::Clean:
return tr("Clean Steps");
+ default:
+ return tr("Unknown Steps");
+ }
}
void BuildStepsPage::init(BuildConfiguration *bc)
@@ -295,7 +301,19 @@ void BuildStepsPage::setupUi()
QHBoxLayout *hboxLayout = new QHBoxLayout();
hboxLayout->setContentsMargins(0, 4, 0, 0);
m_addButton = new QPushButton(this);
- m_addButton->setText(m_type == BuildStep::Clean ? tr("Add Clean Step") : tr("Add Build Step"));
+ switch (m_type) {
+ case BuildStep::Clean:
+ m_addButton->setText(tr("Add Clean Step"));
+ break;
+ case BuildStep::Build:
+ m_addButton->setText(tr("Add Build Step"));
+ break;
+ case BuildStep::Deploy:
+ m_addButton->setText(tr("Add Deploy Step"));
+ break;
+ default:
+ m_addButton->setText(tr("Add Step"));
+ }
m_addButton->setMenu(new QMenu(this));
hboxLayout->addWidget(m_addButton);
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp
index 4c86df6043..e3a56fae9d 100644
--- a/src/plugins/projectexplorer/userfileaccessor.cpp
+++ b/src/plugins/projectexplorer/userfileaccessor.cpp
@@ -148,6 +148,23 @@ public:
QVariantMap update(Project *project, const QVariantMap &map);
};
+// Version 4 reflects the introduction of deploy steps
+class Version4Handler : public UserFileVersionHandler
+{
+public:
+ int userFileVersion() const
+ {
+ return 4;
+ }
+
+ QString displayUserFileVersion() const
+ {
+ return QLatin1String("2.2pre1");
+ }
+
+ QVariantMap update(Project *project, const QVariantMap &map);
+};
+
//
// Helper functions:
//
@@ -218,6 +235,7 @@ UserFileAccessor::UserFileAccessor() :
addVersionHandler(new Version1Handler);
addVersionHandler(new Version2Handler);
addVersionHandler(new Version3Handler);
+ addVersionHandler(new Version4Handler);
}
UserFileAccessor::~UserFileAccessor()
@@ -1010,3 +1028,78 @@ QVariantMap Version3Handler::update(Project *, const QVariantMap &map)
}
return result;
}
+
+
+// -------------------------------------------------------------------------
+// Version4Handler
+// -------------------------------------------------------------------------
+
+// Move packaging steps from build steps into deploy steps
+QVariantMap Version4Handler::update(Project *, const QVariantMap &map)
+{
+ QVariantMap result;
+ QMapIterator<QString, QVariant> it(map);
+ while (it.hasNext()) {
+ it.next();
+ const QString &globalKey = it.key();
+ // check for target info
+ if (!globalKey.startsWith(QLatin1String("ProjectExplorer.Project.Target."))) {
+ result.insert(globalKey, it.value());
+ continue;
+ }
+ const QVariantMap &originalTarget = it.value().toMap();
+ // check for symbian and maemo device target
+ if (originalTarget.value(QLatin1String("ProjectExplorer.ProjectConfiguration.Id"))
+ != QLatin1String("Qt4ProjectManager.Target.S60DeviceTarget")
+ && originalTarget.value(QLatin1String("ProjectExplorer.ProjectConfiguration.Id"))
+ != QLatin1String("Qt4ProjectManager.Target.MaemoDeviceTarget"))
+ {
+ result.insert(globalKey, originalTarget);
+ continue;
+ }
+
+ QVariantMap newTarget;
+ QMapIterator<QString, QVariant> targetIt(originalTarget);
+ while (targetIt.hasNext()) {
+ targetIt.next();
+ const QString &targetKey = targetIt.key();
+ if (!targetKey.startsWith(QLatin1String("ProjectExplorer.Target.BuildConfiguration."))) {
+ newTarget.insert(targetKey, targetIt.value());
+ continue;
+ }
+
+ bool movedBs = false;
+ const QVariantMap &originalBc = targetIt.value().toMap();
+ QVariantMap newBc;
+ QMapIterator<QString, QVariant> bcIt(originalBc);
+ while(bcIt.hasNext()) {
+ bcIt.next();
+ const QString &bcKey = bcIt.key();
+ if (!bcKey.startsWith(QLatin1String("ProjectExplorer.BuildConfiguration.BuildStep."))) {
+ newBc.insert(bcKey, bcIt.value());
+ continue;
+ }
+
+ const QVariantMap &buildStep = bcIt.value().toMap();
+ if ((buildStep.value(QLatin1String("ProjectExplorer.ProjectConfiguration.Id")).toString() ==
+ QLatin1String("Qt4ProjectManager.S60SignBuildStep"))
+ || (buildStep.value(QLatin1String("ProjectExplorer.ProjectConfiguration.Id")).toString() ==
+ QLatin1String("Qt4ProjectManager.MaemoPackageCreationStep"))) {
+ movedBs = true;
+ newBc.insert(QLatin1String("ProjectExplorer.BuildConfiguration.DeployStep.0"), buildStep);
+ } else {
+ newBc.insert(bcKey, buildStep);
+ }
+ }
+ if (movedBs) {
+ // adjust counts:
+ newBc.insert(QLatin1String("ProjectExplorer.BuildConfiguration.DeployStepsCount"), 1);
+ newBc.insert(QLatin1String("ProjectExplorer.BuildConfiguration.BuildStepsCount"),
+ newBc.value(QLatin1String("ProjectExplorer.BuildConfiguration.BuildStepsCount")).toInt() - 1);
+ }
+ newTarget.insert(targetKey, newBc);
+ }
+ result.insert(globalKey, newTarget);
+ }
+ return result;
+}
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
index 38c7df3cb7..157e92fa86 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationfactory.cpp
@@ -105,22 +105,25 @@ BuildStep *MaemoPackageCreationFactory::restore(BuildConfiguration *parent,
}
bool MaemoPackageCreationFactory::canClone(BuildConfiguration *parent,
- BuildStep::Type type, BuildStep *product) const
+ ProjectExplorer::BuildStep::Type type,
+ BuildStep *product) const
{
return canCreateInternally(parent, type, product->id());
}
BuildStep *MaemoPackageCreationFactory::clone(BuildConfiguration *parent,
- BuildStep::Type type, BuildStep *product)
+ ProjectExplorer::BuildStep::Type type,
+ BuildStep *product)
{
Q_ASSERT(canClone(parent, type, product));
return new MaemoPackageCreationStep(parent, static_cast<MaemoPackageCreationStep *>(product));
}
bool MaemoPackageCreationFactory::canCreateInternally(BuildConfiguration *parent,
- BuildStep::Type type, const QString &id) const
+ ProjectExplorer::BuildStep::Type type,
+ const QString &id) const
{
- return type == ProjectExplorer::BuildStep::Build
+ return type == ProjectExplorer::BuildStep::Deploy
&& id == MaemoPackageCreationStep::CreatePackageId
&& parent->target()->id() == Constants::MAEMO_DEVICE_TARGET_ID;
}
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
index 095376112a..1f99763b6b 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp
@@ -185,7 +185,7 @@ S60CreatePackageStepFactory::~S60CreatePackageStepFactory()
bool S60CreatePackageStepFactory::canCreate(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type, const QString &id) const
{
- if (type != ProjectExplorer::BuildStep::Build)
+ if (type != ProjectExplorer::BuildStep::Deploy)
return false;
if (parent->target()->id() != Constants::S60_DEVICE_TARGET_ID)
return false;
@@ -230,7 +230,7 @@ ProjectExplorer::BuildStep *S60CreatePackageStepFactory::restore(ProjectExplorer
QStringList S60CreatePackageStepFactory::availableCreationIds(ProjectExplorer::BuildConfiguration *parent, ProjectExplorer::BuildStep::Type type) const
{
- if (type != ProjectExplorer::BuildStep::Build)
+ if (type != ProjectExplorer::BuildStep::Deploy)
return QStringList();
if (parent->target()->id() == Constants::S60_DEVICE_TARGET_ID)
return QStringList() << QLatin1String(SIGN_BS_ID);
diff --git a/src/plugins/qt4projectmanager/qt4target.cpp b/src/plugins/qt4projectmanager/qt4target.cpp
index 990d62111b..198e2e7eff 100644
--- a/src/plugins/qt4projectmanager/qt4target.cpp
+++ b/src/plugins/qt4projectmanager/qt4target.cpp
@@ -283,9 +283,9 @@ Qt4BuildConfiguration *Qt4Target::addQt4BuildConfiguration(QString displayName,
if (id() == Constants::S60_DEVICE_TARGET_ID) {
S60CreatePackageStep *packageStep = new S60CreatePackageStep(bc);
- bc->insertStep(ProjectExplorer::BuildStep::Build, 2, packageStep);
+ bc->insertStep(ProjectExplorer::BuildStep::Deploy, 2, packageStep);
} else if (id() == Constants::MAEMO_DEVICE_TARGET_ID) {
- bc->insertStep(ProjectExplorer::BuildStep::Build, 2, new MaemoPackageCreationStep(bc));
+ bc->insertStep(ProjectExplorer::BuildStep::Deploy, 2, new MaemoPackageCreationStep(bc));
}
MakeStep* cleanStep = new MakeStep(bc);