79 #define RSS_TAG_DEFAULT "default_rules" // Same as just giving rules without tag |
79 #define RSS_TAG_DEFAULT "default_rules" // Same as just giving rules without tag |
80 |
80 |
81 #define MMP_TARGET "TARGET" |
81 #define MMP_TARGET "TARGET" |
82 #define MMP_TARGETTYPE "TARGETTYPE" |
82 #define MMP_TARGETTYPE "TARGETTYPE" |
83 #define MMP_SECUREID "SECUREID" |
83 #define MMP_SECUREID "SECUREID" |
84 #define MMP_OPTION_CW "OPTION CW" |
84 #define MMP_OPTION "OPTION" |
85 #define MMP_OPTION_ARMCC "OPTION ARMCC" |
85 #define MMP_LINKEROPTION "LINKEROPTION" |
86 #define MMP_OPTION_GCCE "OPTION GCCE" |
|
87 #define MMP_LINKEROPTION_CW "LINKEROPTION CW" |
|
88 #define MMP_LINKEROPTION_ARMCC "LINKEROPTION ARMCC" |
|
89 #define MMP_LINKEROPTION_GCCE "LINKEROPTION GCCE" |
|
90 #define MMP_CAPABILITY "CAPABILITY" |
86 #define MMP_CAPABILITY "CAPABILITY" |
91 #define MMP_EPOCALLOWDLLDATA "EPOCALLOWDLLDATA" |
87 #define MMP_EPOCALLOWDLLDATA "EPOCALLOWDLLDATA" |
92 #define MMP_EPOCHEAPSIZE "EPOCHEAPSIZE" |
88 #define MMP_EPOCHEAPSIZE "EPOCHEAPSIZE" |
93 #define MMP_EPOCSTACKSIZE "EPOCSTACKSIZE" |
89 #define MMP_EPOCSTACKSIZE "EPOCSTACKSIZE" |
94 #define MMP_UID "UID" |
90 #define MMP_UID "UID" |
95 #define MMP_VENDORID "VENDORID" |
91 #define MMP_VENDORID "VENDORID" |
96 #define MMP_VERSION "VERSION" |
92 #define MMP_VERSION "VERSION" |
97 #define MMP_START_RESOURCE "START RESOURCE" |
93 #define MMP_START_RESOURCE "START RESOURCE" |
98 #define MMP_END_RESOURCE "END" |
94 #define MMP_END_RESOURCE "END" |
|
95 |
|
96 #define VAR_CXXFLAGS "QMAKE_CXXFLAGS" |
|
97 #define VAR_CFLAGS "QMAKE_CFLAGS" |
|
98 #define VAR_LFLAGS "QMAKE_LFLAGS" |
99 |
99 |
100 #define SIS_TARGET "sis" |
100 #define SIS_TARGET "sis" |
101 #define INSTALLER_SIS_TARGET "installer_sis" |
101 #define INSTALLER_SIS_TARGET "installer_sis" |
102 #define ROM_STUB_SIS_TARGET "stub_sis" |
102 #define ROM_STUB_SIS_TARGET "stub_sis" |
103 #define OK_SIS_TARGET "ok_sis" |
103 #define OK_SIS_TARGET "ok_sis" |
1184 t << MMP_CAPABILITY "\t\tNone"; |
1183 t << MMP_CAPABILITY "\t\tNone"; |
1185 } |
1184 } |
1186 t << endl << endl; |
1185 t << endl << endl; |
1187 } |
1186 } |
1188 |
1187 |
|
1188 void SymbianMakefileGenerator::writeMmpFileConditionalOptions(QTextStream& t, |
|
1189 const QString &optionType, |
|
1190 const QString &optionTag, |
|
1191 const QString &variableBase) |
|
1192 { |
|
1193 foreach(QString compilerVersion, project->values("VERSION_FLAGS." + optionTag)) { |
|
1194 QStringList currentValues = project->values(variableBase + "." + compilerVersion); |
|
1195 if (currentValues.size()) { |
|
1196 t << "#if defined(" << compilerVersion << ")" << endl; |
|
1197 t << optionType << " " << optionTag << " " << currentValues.join(" ") << endl; |
|
1198 t << "#endif" << endl; |
|
1199 } |
|
1200 } |
|
1201 } |
|
1202 |
|
1203 void SymbianMakefileGenerator::writeMmpFileSimpleOption(QTextStream& t, |
|
1204 const QString &optionType, |
|
1205 const QString &optionTag, |
|
1206 const QString &options) |
|
1207 { |
|
1208 QString trimmedOptions = options.trimmed(); |
|
1209 if (!trimmedOptions.isEmpty()) |
|
1210 t << optionType << " " << optionTag << " " << trimmedOptions << endl; |
|
1211 } |
|
1212 |
|
1213 void SymbianMakefileGenerator::appendMmpFileOptions(QString &options, const QStringList &list) |
|
1214 { |
|
1215 if (list.size()) { |
|
1216 options.append(list.join(" ")); |
|
1217 options.append(" "); |
|
1218 } |
|
1219 } |
|
1220 |
1189 void SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) |
1221 void SymbianMakefileGenerator::writeMmpFileCompilerOptionPart(QTextStream& t) |
1190 { |
1222 { |
1191 QString cw, armcc, gcce; |
1223 QStringList keywords = project->values("MMP_OPTION_KEYWORDS"); |
1192 QString cwlink, armlink, gccelink; |
1224 QStringList commonCxxFlags = project->values(VAR_CXXFLAGS); |
1193 |
1225 QStringList commonCFlags = project->values(VAR_CFLAGS); |
1194 if (0 != project->values("QMAKE_CXXFLAGS.CW").size()) { |
1226 QStringList commonLFlags = project->values(VAR_LFLAGS); |
1195 cw.append(project->values("QMAKE_CXXFLAGS.CW").join(" ")); |
1227 |
1196 cw.append(" "); |
1228 foreach(QString item, keywords) { |
1197 } |
1229 QString compilerOption; |
1198 |
1230 QString linkerOption; |
1199 if (0 != project->values("QMAKE_CXXFLAGS.ARMCC").size()) { |
1231 |
1200 armcc.append(project->values("QMAKE_CXXFLAGS.ARMCC").join(" ")); |
1232 appendMmpFileOptions(compilerOption, project->values(VAR_CXXFLAGS "." + item)); |
1201 armcc.append(" "); |
1233 appendMmpFileOptions(compilerOption, project->values(VAR_CFLAGS "." + item)); |
1202 } |
1234 appendMmpFileOptions(compilerOption, commonCxxFlags); |
1203 |
1235 appendMmpFileOptions(compilerOption, commonCFlags); |
1204 if (0 != project->values("QMAKE_CXXFLAGS.GCCE").size()) { |
1236 |
1205 gcce.append(project->values("QMAKE_CXXFLAGS.GCCE").join(" ")); |
1237 appendMmpFileOptions(linkerOption, project->values(VAR_LFLAGS "." + item)); |
1206 gcce.append(" "); |
1238 appendMmpFileOptions(linkerOption, commonLFlags); |
1207 } |
1239 |
1208 |
1240 writeMmpFileSimpleOption(t, MMP_OPTION, item, compilerOption); |
1209 if (0 != project->values("QMAKE_CFLAGS.CW").size()) { |
1241 writeMmpFileSimpleOption(t, MMP_LINKEROPTION, item, linkerOption); |
1210 cw.append(project->values("QMAKE_CFLAGS.CW").join(" ")); |
1242 |
1211 cw.append(" "); |
1243 writeMmpFileConditionalOptions(t, MMP_OPTION, item, VAR_CXXFLAGS); |
1212 } |
1244 writeMmpFileConditionalOptions(t, MMP_LINKEROPTION, item, VAR_LFLAGS); |
1213 |
1245 } |
1214 if (0 != project->values("QMAKE_CFLAGS.ARMCC").size()) { |
|
1215 armcc.append(project->values("QMAKE_CFLAGS.ARMCC").join(" ")); |
|
1216 armcc.append(" "); |
|
1217 } |
|
1218 |
|
1219 if (0 != project->values("QMAKE_CFLAGS.GCCE").size()) { |
|
1220 gcce.append(project->values("QMAKE_CXXFLAGS.GCCE").join(" ")); |
|
1221 gcce.append(" "); |
|
1222 } |
|
1223 |
|
1224 if (0 != project->values("QMAKE_CXXFLAGS").size()) { |
|
1225 cw.append(project->values("QMAKE_CXXFLAGS").join(" ")); |
|
1226 cw.append(" "); |
|
1227 armcc.append(project->values("QMAKE_CXXFLAGS").join(" ")); |
|
1228 armcc.append(" "); |
|
1229 gcce.append(project->values("QMAKE_CXXFLAGS").join(" ")); |
|
1230 gcce.append(" "); |
|
1231 } |
|
1232 |
|
1233 if (0 != project->values("QMAKE_CFLAGS").size()) { |
|
1234 cw.append(project->values("QMAKE_CFLAGS").join(" ")); |
|
1235 cw.append(" "); |
|
1236 armcc.append(project->values("QMAKE_CFLAGS").join(" ")); |
|
1237 armcc.append(" "); |
|
1238 gcce.append(project->values("QMAKE_CFLAGS").join(" ")); |
|
1239 gcce.append(" "); |
|
1240 } |
|
1241 |
|
1242 if (0 != project->values("QMAKE_LFLAGS.CW").size()) { |
|
1243 cwlink.append(project->values("QMAKE_LFLAGS.CW").join(" ")); |
|
1244 cwlink.append(" "); |
|
1245 } |
|
1246 |
|
1247 if (0 != project->values("QMAKE_LFLAGS.ARMCC").size()) { |
|
1248 armlink.append(project->values("QMAKE_LFLAGS.ARMCC").join(" ")); |
|
1249 armlink.append(" "); |
|
1250 } |
|
1251 |
|
1252 if (0 != project->values("QMAKE_LFLAGS.GCCE").size()) { |
|
1253 gccelink.append(project->values("QMAKE_LFLAGS.GCCE").join(" ")); |
|
1254 gccelink.append(" "); |
|
1255 } |
|
1256 |
|
1257 if (0 != project->values("QMAKE_LFLAGS").size()) { |
|
1258 cwlink.append(project->values("QMAKE_LFLAGS").join(" ")); |
|
1259 cwlink.append(" "); |
|
1260 armlink.append(project->values("QMAKE_LFLAGS").join(" ")); |
|
1261 armlink.append(" "); |
|
1262 gccelink.append(project->values("QMAKE_LFLAGS").join(" ")); |
|
1263 gccelink.append(" "); |
|
1264 } |
|
1265 |
|
1266 if (!cw.isEmpty() && cw[cw.size()-1] == ' ') |
|
1267 cw.chop(1); |
|
1268 if (!armcc.isEmpty() && armcc[armcc.size()-1] == ' ') |
|
1269 armcc.chop(1); |
|
1270 if (!gcce.isEmpty() && gcce[gcce.size()-1] == ' ') |
|
1271 gcce.chop(1); |
|
1272 if (!cwlink.isEmpty() && cwlink[cwlink.size()-1] == ' ') |
|
1273 cwlink.chop(1); |
|
1274 if (!armlink.isEmpty() && armlink[armlink.size()-1] == ' ') |
|
1275 armlink.chop(1); |
|
1276 if (!gccelink.isEmpty() && gccelink[gccelink.size()-1] == ' ') |
|
1277 gccelink.chop(1); |
|
1278 |
|
1279 if (!cw.isEmpty()) |
|
1280 t << MMP_OPTION_CW " " << cw << endl; |
|
1281 if (!armcc.isEmpty()) |
|
1282 t << MMP_OPTION_ARMCC " " << armcc << endl; |
|
1283 |
|
1284 foreach(QString armccVersion, project->values("VERSION_FLAGS.ARMCC")) { |
|
1285 QStringList currentValues = project->values("QMAKE_CXXFLAGS." + armccVersion); |
|
1286 if (currentValues.size()) { |
|
1287 t << "#if defined(" << armccVersion << ")" << endl; |
|
1288 t << MMP_OPTION_ARMCC " " << currentValues.join(" ") << endl; |
|
1289 t << "#endif" << endl; |
|
1290 } |
|
1291 } |
|
1292 |
|
1293 if (!gcce.isEmpty()) |
|
1294 t << MMP_OPTION_GCCE " " << gcce << endl; |
|
1295 |
|
1296 if (!cwlink.isEmpty()) |
|
1297 t << MMP_LINKEROPTION_CW " " << cwlink << endl; |
|
1298 if (!armlink.isEmpty()) |
|
1299 t << MMP_LINKEROPTION_ARMCC " " << armlink << endl; |
|
1300 if (!gccelink.isEmpty()) |
|
1301 t << MMP_LINKEROPTION_GCCE " " << gccelink << endl; |
|
1302 |
1246 |
1303 t << endl; |
1247 t << endl; |
1304 } |
1248 } |
1305 |
1249 |
1306 void SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t) |
1250 void SymbianMakefileGenerator::writeMmpFileBinaryVersionPart(QTextStream& t) |
1717 // get captions from ts file |
1661 // get captions from ts file |
1718 QFile tsFile(tsFilename); |
1662 QFile tsFile(tsFilename); |
1719 if (tsFile.exists()) { |
1663 if (tsFile.exists()) { |
1720 if (tsFile.open(QIODevice::ReadOnly)) { |
1664 if (tsFile.open(QIODevice::ReadOnly)) { |
1721 QString shortCaptionId = QLatin1String("txt_short_caption_"); |
1665 QString shortCaptionId = QLatin1String("txt_short_caption_"); |
1722 shortCaptionId.append(filename); |
|
1723 QString longCaptionId = QLatin1String("txt_long_caption_"); |
1666 QString longCaptionId = QLatin1String("txt_long_caption_"); |
1724 longCaptionId.append(filename); |
|
1725 QXmlStreamReader xml(&tsFile); |
1667 QXmlStreamReader xml(&tsFile); |
1726 while (!xml.atEnd()) { |
1668 while (!xml.atEnd()) { |
1727 xml.readNext(); |
1669 xml.readNext(); |
1728 if (xml.isStartElement() && xml.name() == "context") { |
1670 if (xml.isStartElement() && xml.name() == "context") { |
1729 while (!(xml.isEndElement() && xml.name() == "context") && !xml.atEnd()) { |
1671 while (!(xml.isEndElement() && xml.name() == "context") && !xml.atEnd()) { |
1730 xml.readNext(); |
1672 xml.readNext(); |
1731 if (xml.isStartElement() && xml.name() == "message" && |
1673 if (xml.isStartElement() && xml.name() == "message" && |
1732 xml.attributes().value("numerus") == "no" && |
1674 xml.attributes().value("numerus") == "no" && |
1733 xml.attributes().value("id") == shortCaptionId) { |
1675 xml.attributes().value("id").toString().left(shortCaptionId.length()) == shortCaptionId) { |
1734 while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) { |
1676 while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) { |
1735 xml.readNext(); |
1677 xml.readNext(); |
1736 if (xml.isStartElement() && xml.name() == "translation") { |
1678 if (xml.isStartElement() && xml.name() == "translation") { |
1737 shortCaption = xml.readElementText(); |
1679 shortCaption = xml.readElementText(); |
1738 } |
1680 } |
1739 } |
1681 } |
1740 } |
1682 } |
1741 if (xml.isStartElement() && xml.name() == "message" && |
1683 if (xml.isStartElement() && xml.name() == "message" && |
1742 xml.attributes().value("numerus") == "no" && |
1684 xml.attributes().value("numerus") == "no" && |
1743 xml.attributes().value("id") == longCaptionId) { |
1685 xml.attributes().value("id").toString().left(longCaptionId.length()) == longCaptionId) { |
1744 while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) { |
1686 while (!(xml.isEndElement() && xml.name() == "message") && !xml.atEnd()) { |
1745 xml.readNext(); |
1687 xml.readNext(); |
1746 if (xml.isStartElement() && xml.name() == "translation") { |
1688 if (xml.isStartElement() && xml.name() == "translation") { |
1747 longCaption = xml.readElementText(); |
1689 longCaption = xml.readElementText(); |
1748 } |
1690 } |