summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2009-05-06 10:33:42 (GMT)
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2009-05-06 10:33:42 (GMT)
commit6ee512244b371f63138a645c2f612abc44eb6107 (patch)
tree61e1c6a603aac724bd040d9201df0eeb020545ed /qmake/generators
parente4b70508f33a94f32527934b2564eaf7e0677e5e (diff)
downloadQt-6ee512244b371f63138a645c2f612abc44eb6107.zip
Qt-6ee512244b371f63138a645c2f612abc44eb6107.tar.gz
Qt-6ee512244b371f63138a645c2f612abc44eb6107.tar.bz2
Added VERSION keyword generation to mmp files
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/symbian/symmake.cpp41
-rw-r--r--qmake/generators/symbian/symmake.h1
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);