diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-05-06 10:33:42 (GMT) |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2009-05-06 10:33:42 (GMT) |
commit | 6ee512244b371f63138a645c2f612abc44eb6107 (patch) | |
tree | 61e1c6a603aac724bd040d9201df0eeb020545ed /qmake | |
parent | e4b70508f33a94f32527934b2564eaf7e0677e5e (diff) | |
download | Qt-6ee512244b371f63138a645c2f612abc44eb6107.zip Qt-6ee512244b371f63138a645c2f612abc44eb6107.tar.gz Qt-6ee512244b371f63138a645c2f612abc44eb6107.tar.bz2 |
Added VERSION keyword generation to mmp files
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/generators/symbian/symmake.cpp | 41 | ||||
-rw-r--r-- | qmake/generators/symbian/symmake.h | 1 |
2 files changed, 42 insertions, 0 deletions
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index 69d09ac..5c9ec13 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -666,6 +666,8 @@ bool SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb writeMmpFileCompilerOptionPart(t); + writeMmpFileBinaryVersionPart(t); + writeMmpFileRulesPart(t); } else { return false; @@ -944,6 +946,45 @@ bool SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) { if (!armcc.isEmpty()) t << "OPTION" << '\t' << " ARMCC "<< armcc << endl; // others to come + + t << endl; + return true; +} + +bool SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t) { + QString applicationVersion = project->first("VERSION"); + QStringList verNumList = applicationVersion.split('.'); + uint major = 0; + uint minor = 0; + uint patch = 0; + bool success = false; + + if (verNumList.size() > 0) { + major = verNumList[0].toUInt(&success); + if (success && verNumList.size() > 1) { + minor = verNumList[1].toUInt(&success); + if (success && verNumList.size() > 2) { + patch = verNumList[2].toUInt(&success); + } + } + } + + QString mmpVersion; + if (success && major <= 0xFFFF && minor <= 0xFF && patch <= 0xFF) { + // Symbian binary version only has major and minor components, so compress + // Qt's minor and patch values into the minor component. Since Symbian's minor + // component is a 16 bit value, only allow 8 bits for each to avoid overflow. + mmpVersion.append(QString::number(major)) + .append('.') + .append(QString::number((minor << 8) + patch)); + } else { + if (!applicationVersion.isEmpty()) + fprintf(stderr, "Invalid VERSION string: %s\n", qPrintable(applicationVersion)); + mmpVersion = "10.0"; // Default binary version for symbian is 10.0 + } + + t << "VERSION " << mmpVersion << endl; + return true; } diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h index ed24d20..06732b5 100644 --- a/qmake/generators/symbian/symmake.h +++ b/qmake/generators/symbian/symmake.h @@ -83,6 +83,7 @@ protected: bool writeMmpFileLibraryPart(QTextStream& t); bool writeMmpFileCapabilityPart(QTextStream& t); bool writeMmpFileCompilerOptionPart(QTextStream& t); + bool writeMmpFileBinaryVersionPart(QTextStream& t); bool writeMmpFileRulesPart(QTextStream& t); bool writeRegRssFile(QString &appname, QStringList &useritems); |