From facd4c360fe734095d67f5f44fe8352a1e346e53 Mon Sep 17 00:00:00 2001
From: Pawel Polanski <pawel.3.polanski@nokia.com>
Date: Thu, 17 Mar 2011 11:47:44 +0100
Subject: [PATCH] Symbian: SIS files are not created per project now

Reviewed-by: Daniel Teske
---
 .../qt-s60/s60deployconfiguration.cpp         | 27 ++++++++++++++++---
 .../qt-s60/s60deployconfiguration.h           |  2 ++
 src/plugins/qt4projectmanager/qt4nodes.cpp    |  1 +
 src/plugins/qt4projectmanager/qt4nodes.h      |  3 ++-
 4 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp
index e854368c29d..cff06330115 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp
@@ -148,12 +148,31 @@ bool S60DeployConfiguration::isStaticLibrary(const Qt4ProFileNode &projectNode)
     return false;
 }
 
+bool S60DeployConfiguration::isApplication(const Qt4ProFileNode &projectNode) const
+{
+    return projectNode.projectType() == ApplicationTemplate;
+}
+
+bool S60DeployConfiguration::isDeployable(const Qt4ProFileNode &projectNode) const
+{
+    const QStringList &deployment(projectNode.variableValue(Deployment));
+    // default_*deployment are default for DEPLOYMENT
+    const char * defaultDeploymentStart = "default_";
+    const char * defaultDeploymentEnd = "deployment";
+
+    //we need to filter out the default_*deployment
+    for (int i = deployment.count() - 1; i >= 0; --i) {
+        const QString var = deployment.at(i);
+        if (!var.startsWith(QLatin1String(defaultDeploymentStart))
+                || !var.endsWith(QLatin1String(defaultDeploymentEnd)))
+            return true;
+    }
+    return false;
+}
+
 bool S60DeployConfiguration::hasSisPackage(const Qt4ProFileNode &projectNode) const
 {
-    if (projectNode.projectType() != ApplicationTemplate
-            && projectNode.projectType() != LibraryTemplate)
-        return false;
-    return !isStaticLibrary(projectNode);
+    return isDeployable(projectNode) || isApplication(projectNode);
 }
 
 QStringList S60DeployConfiguration::signedPackages() const
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
index f5d8efd1fed..d961a978bbe 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h
@@ -130,7 +130,9 @@ private:
     QString symbianTarget() const;
     QString createPackageName(const QString &baseName) const;
     bool isDebug() const;
+    bool isDeployable(const Qt4ProFileNode &projectNode) const;
     bool isStaticLibrary(const Qt4ProFileNode &projectNode) const;
+    bool isApplication(const Qt4ProFileNode &projectNode) const;
     bool hasSisPackage(const Qt4ProFileNode &projectNode) const;
 
 private:
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 35d5e70ad3b..406443121fd 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -1745,6 +1745,7 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
                     QLatin1String("QML_IMPORT_PATH"), m_projectDir);
         newVarValues[Makefile] = m_readerExact->values("MAKEFILE");
         newVarValues[SymbianCapabilities] = m_readerExact->values("TARGET.CAPABILITY");
+        newVarValues[Deployment] = m_readerExact->values("DEPLOYMENT");
 
         if (m_varValues != newVarValues) {
             Qt4VariablesHash oldValues = m_varValues;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 369ca5a5e33..029abb8af92 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -104,7 +104,8 @@ enum Qt4Variable {
     ConfigVar,
     QmlImportPathVar,
     Makefile,
-    SymbianCapabilities
+    SymbianCapabilities,
+    Deployment
 };
 
 class Qt4PriFileNode;
-- 
GitLab