1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/****************************************************************************
**
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
** This file is part of the $MODULE$ of the Qt Toolkit.
**
** $TROLLTECH_DUAL_LICENSE$
**
****************************************************************************/
#ifndef SYMMAKEFILE_H
#define SYMMAKEFILE_H
#include <makefile.h>
QT_BEGIN_NAMESPACE
// In the Qt evaluation and educational version, we have a postfix in the
// library name (e.g. qtmteval301.dll). QTDLL_POSTFIX is used for this.
// A script modifies these lines when building eval/edu version, so be careful
// when changing them.
#ifndef QTDLL_POSTFIX
#define QTDLL_POSTFIX ""
#endif
#define BLD_INF_FILENAME "bld.inf"
#define MAKEFILE_DEPENDENCY_SEPARATOR " \\\n\t"
class SymbianMakefileGenerator : public MakefileGenerator {
protected:
QString platform;
QString uid1;
QString uid2;
QString uid3;
QString privateDirUid;
QString targetType;
QMap<QString, QStringList> sources;
QMap<QString, QStringList> systeminclude;
QMap<QString, QStringList> library;
// (output file) (source , command)
QMap<QString, QStringList> makmakeCommands;
QStringList generatedFiles;
QStringList generatedDirs;
QHash<QString, QString> qt2S60LangMapTable;
void removeSpecialCharacters(QString& str);
QString getWithoutSpecialCharacters(QString& str);
QString fixPathForMmp(const QString& origPath, const QDir& parentDir);
QString canonizePath(const QString& origPath);
virtual bool writeStubMakefile(QTextStream &t);
virtual bool writeMakefile(QTextStream &t);
bool generatePkgFile(const QString &compiler, const QString &config, const QString &iconFile);
virtual void init();
QString getTargetExtension();
bool isConfigSetToSymbian();
QString generateUID1();
QString generateUID2();
QString generateUID3();
bool initMmpVariables();
void writeHeader(QTextStream &t);
bool writeBldInfContent(QTextStream& t, bool addDeploymentExtension);
static bool removeDuplicatedStrings(QStringList& stringList);
bool writeMmpFileHeader(QTextStream &t);
bool writeMmpFile(QString &filename, QStringList &symbianLangCodes);
bool writeMmpFileMacrosPart(QTextStream& t);
bool addMacro(QTextStream& t, const QString& value);
bool writeMmpFileTargetPart(QTextStream& t);
bool writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes);
bool writeMmpFileSystemIncludePart(QTextStream& t);
bool writeMmpFileIncludePart(QTextStream& t);
bool writeMmpFileLibraryPart(QTextStream& t);
bool writeMmpFileCapabilityPart(QTextStream& t);
bool writeMmpFileCompilerOptionPart(QTextStream& t);
bool writeMmpFileRulesPart(QTextStream& t);
bool writeRegRssFile(QString &appname, QStringList &useritems);
bool writeRssFile(QString &appName, QString &numberOfIcons, QString &iconfile);
bool writeLocFile(QString &appName, QStringList &symbianLangCodes);
void readRssRules(QString &numberOfIcons, QString &iconFile, QStringList &userRssRules);
QStringList symbianLangCodesFromTsFiles();
void fillQt2S60LangMapTable();
void appendIfnotExist(QStringList &list, QString value);
void appendIfnotExist(QStringList &list, QStringList values);
QString removePathSeparators(QString &file);
QString removeTrailingPathSeparators(QString &file);
bool generateCleanCommands(QTextStream& t,
const QStringList& toClean,
const QString& cmd,
const QString& cmdOptions,
const QString& itemPrefix,
const QString& itemSuffix);
bool writeCustomDefFile();
// Subclass implements
virtual bool writeBldInfExtensionRulesPart(QTextStream& t) = 0;
virtual void writeBldInfMkFilePart(QTextStream& t, bool addDeploymentExtension) = 0;
virtual bool writeMkFile(const QString& wrapperFileName, bool deploymentOnly) = 0;
virtual void writeWrapperMakefile(QFile& wrapperFile, bool isPrimaryMakefile) = 0;
public:
SymbianMakefileGenerator();
~SymbianMakefileGenerator();
};
#endif // SYMMAKEFILE_H
|