summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2010-09-27 12:39:18 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2010-09-27 13:07:17 (GMT)
commitbc8409b9d04be54d98ca97d96c32473039f58a80 (patch)
treea1221c84e78a83b398e6745b0c3935adbad73949
parenta8d405f470edb41b868142879a978d8976bc766a (diff)
downloadQt-bc8409b9d04be54d98ca97d96c32473039f58a80.zip
Qt-bc8409b9d04be54d98ca97d96c32473039f58a80.tar.gz
Qt-bc8409b9d04be54d98ca97d96c32473039f58a80.tar.bz2
Streamlined smart installer package creation
Previously manual editing of the pkg file was required to publish application using smart installer. Now a proper app_installer.pkg will be created as long as application has protected range UID. Also changed "make installer_sis" to always generate the application sis as publishing process supports signing both application and its smart installer wrapper packages in single step. Task-number: QTBUG-13991 Reviewed-by: axis
-rw-r--r--mkspecs/features/symbian/sis_targets.prf4
-rw-r--r--qmake/generators/symbian/symbiancommon.cpp13
2 files changed, 12 insertions, 5 deletions
diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf
index 800a04c..673127e 100644
--- a/mkspecs/features/symbian/sis_targets.prf
+++ b/mkspecs/features/symbian/sis_targets.prf
@@ -67,7 +67,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
- installer_sis_target.depends = $${baseTarget}.sis
+ installer_sis_target.depends = sis
ok_installer_sis_target.target = ok_installer_sis
ok_installer_sis_target.commands = createpackage.bat $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
@@ -154,7 +154,7 @@ equals(GENERATE_SIS_TARGETS, true) {
installer_sis_target.target = installer_sis
installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
- installer_sis_target.depends = $${sis_destdir}/$${baseTarget}.sis
+ installer_sis_target.depends = sis
!isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") {
sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index a60ae07..9af3fe4 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -178,8 +178,15 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
QTextStream ts(&stubPkgFile);
QString installerSisHeader = project->values("DEPLOYMENT.installer_header").join("\n");
- if (installerSisHeader.isEmpty())
- installerSisHeader = "0xA000D7CE"; // Use default self-signable UID if not defined
+ if (installerSisHeader.isEmpty()) {
+ // Use correct protected UID for publishing if application UID is in protected range,
+ // otherwise use self-signable test UID.
+ QRegExp protUidMatcher("0[xX][0-7].*");
+ if (protUidMatcher.exactMatch(uid3))
+ installerSisHeader = QLatin1String("0x2002CCCF");
+ else
+ installerSisHeader = QLatin1String("0xA000D7CE"); // Use default self-signable UID
+ }
QString wrapperStreamBuffer;
QTextStream tw(&wrapperStreamBuffer);
@@ -531,7 +538,7 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Wrapped files deployment
QString currentPath = qmake_getpwd();
QString sisName = QString("%1.sis").arg(fixedTarget);
- twf << "\"" << currentPath << "/" << sisName << "\" - \"c:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
+ twf << "\"" << currentPath << "/" << sisName << "\" - \"!:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath);
bootStrapPath.append("/smartinstaller.sis");