summaryrefslogtreecommitdiffstats
path: root/qmake/generators/symbian/symmake.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2010-01-28 12:06:48 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2010-01-28 13:04:54 (GMT)
commit08c1c9ef6f30706cd574eded656f4d65a1b18db5 (patch)
tree5a2dea17cfab716f955eee9adc8d69e3912c4e07 /qmake/generators/symbian/symmake.cpp
parent7060118fe35b358ce6739734d03a285708127b60 (diff)
downloadQt-08c1c9ef6f30706cd574eded656f4d65a1b18db5.zip
Qt-08c1c9ef6f30706cd574eded656f4d65a1b18db5.tar.gz
Qt-08c1c9ef6f30706cd574eded656f4d65a1b18db5.tar.bz2
Added support for ifdeffing for manufacturer in generated pkg files
DEPLOYMENT.manufacturers variable can be used to define manufacturer identifiers. DEPLOYMENT.manufacturers.fail_note variable can be used to define a file that contains the text to be shown in case of failed manufacturer check. Task-number: QTBUG-7695 Reviewed-by: Janne Koskinen
Diffstat (limited to 'qmake/generators/symbian/symmake.cpp')
-rw-r--r--qmake/generators/symbian/symmake.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index 20e2d0e..a23ec60 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -94,6 +94,11 @@
#define PRINT_FILE_CREATE_ERROR(filename) fprintf(stderr, "Error: Could not create '%s'\n", qPrintable(filename));
+#define MANUFACTURER_NOTE_FILE "manufacturer_note.txt"
+#define DEFAULT_MANUFACTURER_NOTE \
+ "The package is not supported for devices from this manufacturer. Please try the selfsigned " \
+ "version of the package instead."
+
QString SymbianMakefileGenerator::fixPathForMmp(const QString& origPath, const QDir& parentDir)
{
static QString epocRootStr;
@@ -354,6 +359,17 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
t << endl;
}
+ // Begin Manufacturer block
+ if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) {
+ QString manufacturerStr("IF ");
+ foreach(QString manufacturer, project->values("DEPLOYMENT.manufacturers")) {
+ manufacturerStr.append(QString("(MANUFACTURER)=(%1) OR \n ").arg(manufacturer));
+ }
+ // Remove the final OR
+ manufacturerStr.chop(8);
+ t << manufacturerStr << endl;
+ }
+
// Install paths on the phone *** should be dynamic at some point
QString installPathBin = "!:\\sys\\bin";
QString installPathResource = "!:\\resource\\apps";
@@ -428,6 +444,30 @@ void SymbianMakefileGenerator::generatePkgFile(const QString &iconFile, Deployme
t << endl;
}
}
+
+ // Close Manufacturer block
+ if (!project->values("DEPLOYMENT.manufacturers").isEmpty()) {
+ QString manufacturerFailNoteFile;
+ if (project->values("DEPLOYMENT.manufacturers.fail_note").isEmpty()) {
+ manufacturerFailNoteFile = QString("%1_" MANUFACTURER_NOTE_FILE).arg(uid3);
+ QFile ft(manufacturerFailNoteFile);
+ if (ft.open(QIODevice::WriteOnly)) {
+ generatedFiles << ft.fileName();
+ QTextStream t2(&ft);
+
+ t2 << QString(DEFAULT_MANUFACTURER_NOTE) << endl;
+ } else {
+ PRINT_FILE_CREATE_ERROR(manufacturerFailNoteFile)
+ }
+ } else {
+ manufacturerFailNoteFile = project->values("DEPLOYMENT.manufacturers.fail_note").join("");
+ }
+
+ t << "ELSEIF NOT(0) ; MANUFACTURER" << endl
+ << "\"" << fileInfo(manufacturerFailNoteFile).absoluteFilePath() << "\""
+ << " - \"\", FILETEXT, TEXTEXIT" << endl
+ << "ENDIF ; MANUFACTURER" << endl;
+ }
}
bool SymbianMakefileGenerator::containsStartWithItem(const QChar &c, const QStringList& src)