diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp index e854368c29d1dec6e3f00b30d6ef568bf127a257..cff063301150bc4d162e88eddf3eeefe4da52125 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 f5d8efd1feddf21bf5fdae1daf842657465d55fa..d961a978bbe77de0c5cc90adb24003a533436c14 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 35d5e70ad3bf68553d217fd674375eea3377ac50..406443121fd5a3e81d998be231a3ad3986fcc4d2 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 369ca5a5e33d7e3863268f66e4cee70ead2e86aa..029abb8af926b35b24a9b519a7ac3a6606865ea3 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;