summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2010-12-03 11:46:35 +0100
committercon <qtc-committer@nokia.com>2010-12-06 13:01:18 +0100
commit592b44e9b513f9483a3b1a46151fe1105a6ffb4c (patch)
treef0ef14cfab68994ccff68ee71b1dc4a5796b2cc7
parent48f3e4cd767d0217144374eb09237189914969dd (diff)
downloadqt-creator-592b44e9b513f9483a3b1a46151fe1105a6ffb4c.tar.gz
Qt4ProjectManager: Force a qmake run on change in the deploy folder
On a change to the deployment folder, we need to run qmake again to recreate the pkg file, we do that by setting a flag on all qmakesteps for symbian and saving/restoring that flag. Reviewed-By: hunger Task-Nr: QTCREATORBUG-3062
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.cpp6
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.cpp18
2 files changed, 22 insertions, 2 deletions
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index fe858f5a7b..2d7bf1a3d4 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -54,6 +54,7 @@ namespace {
const char * const QMAKE_BS_ID("QtProjectManager.QMakeBuildStep");
const char * const QMAKE_ARGUMENTS_KEY("QtProjectManager.QMakeBuildStep.QMakeArguments");
+const char * const QMAKE_FORCED_KEY("QtProjectManager.QMakeBuildStep.QMakeForced");
}
QMakeStep::QMakeStep(BuildStepList *bsl) :
@@ -72,7 +73,7 @@ QMakeStep::QMakeStep(BuildStepList *bsl, const QString &id) :
QMakeStep::QMakeStep(BuildStepList *bsl, QMakeStep *bs) :
AbstractProcessStep(bsl, bs),
- m_forced(false),
+ m_forced(bs->m_forced),
m_userArgs(bs->m_userArgs)
{
ctor();
@@ -302,13 +303,14 @@ QVariantMap QMakeStep::toMap() const
{
QVariantMap map(AbstractProcessStep::toMap());
map.insert(QLatin1String(QMAKE_ARGUMENTS_KEY), m_userArgs);
+ map.insert(QLatin1String(QMAKE_FORCED_KEY), m_forced);
return map;
}
bool QMakeStep::fromMap(const QVariantMap &map)
{
m_userArgs = map.value(QLatin1String(QMAKE_ARGUMENTS_KEY)).toStringList();
-
+ m_forced = map.value(QLatin1String(QMAKE_FORCED_KEY), false).toBool();
return BuildStep::fromMap(map);
}
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index b5601ed2ac..a6d100bb1e 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -722,6 +722,24 @@ void Qt4PriFileNode::folderChanged(const QString &folder)
contents.updateSubFolders(this, this);
m_project->updateFileList();
+
+ // The files to be packaged are listed inside the symbian build system.
+ // We need to regenerate that list by running qmake
+ // Other platforms do not have a explicit list of files to package, but package
+ // directories
+ foreach (ProjectExplorer::Target *target, m_project->targets()) {
+ if (target->id() == Constants::S60_DEVICE_TARGET_ID) {
+ foreach (ProjectExplorer::BuildConfiguration *bc, target->buildConfigurations()) {
+ Qt4BuildConfiguration *qt4bc = qobject_cast<Qt4BuildConfiguration *>(bc);
+ if (qt4bc) {
+ QMakeStep *qmakeStep = qt4bc->qmakeStep();
+ if (qmakeStep)
+ qmakeStep->setForced(true);
+ }
+ }
+ }
+ }
+
}
bool Qt4PriFileNode::deploysFolder(const QString &folder) const