diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2010-01-28 12:06:48 (GMT) |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2010-01-28 13:04:54 (GMT) |
commit | 08c1c9ef6f30706cd574eded656f4d65a1b18db5 (patch) | |
tree | 5a2dea17cfab716f955eee9adc8d69e3912c4e07 /qmake | |
parent | 7060118fe35b358ce6739734d03a285708127b60 (diff) | |
download | Qt-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')
-rw-r--r-- | qmake/generators/symbian/symmake.cpp | 40 |
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) |