41 |
41 |
42 #ifndef SYMMAKEFILE_H |
42 #ifndef SYMMAKEFILE_H |
43 #define SYMMAKEFILE_H |
43 #define SYMMAKEFILE_H |
44 |
44 |
45 #include "initprojectdeploy_symbian.h" |
45 #include "initprojectdeploy_symbian.h" |
|
46 #include "symbiancommon.h" |
46 #include <makefile.h> |
47 #include <makefile.h> |
47 |
48 |
48 QT_BEGIN_NAMESPACE |
49 QT_BEGIN_NAMESPACE |
49 |
50 |
50 #define BLD_INF_FILENAME "bld.inf" |
51 #define BLD_INF_FILENAME "bld.inf" |
51 #define MAKEFILE_DEPENDENCY_SEPARATOR " \\\n\t" |
52 #define MAKEFILE_DEPENDENCY_SEPARATOR " \\\n\t" |
52 #define QT_EXTRA_INCLUDE_DIR "tmp" |
53 #define QT_EXTRA_INCLUDE_DIR "tmp" |
53 #define MAKE_CACHE_NAME ".make.cache" |
54 #define MAKE_CACHE_NAME ".make.cache" |
54 #define SYMBIAN_TEST_CONFIG "symbian_test" |
55 #define SYMBIAN_TEST_CONFIG "symbian_test" |
55 |
56 |
56 class SymbianMakefileGenerator : public MakefileGenerator |
57 class SymbianMakefileGenerator : public MakefileGenerator, public SymbianCommonGenerator |
57 { |
58 { |
58 protected: |
59 protected: |
59 enum TargetType { |
|
60 TypeExe, |
|
61 TypeDll, |
|
62 TypeLib, |
|
63 TypePlugin, |
|
64 TypeSubdirs |
|
65 }; |
|
66 |
|
67 QString platform; |
60 QString platform; |
68 QString uid2; |
61 QString uid2; |
69 QString uid3; |
|
70 QString privateDirUid; |
|
71 TargetType targetType; |
|
72 QMap<QString, QStringList> sources; |
62 QMap<QString, QStringList> sources; |
73 QMap<QString, QStringList> systeminclude; |
63 QMap<QString, QStringList> systeminclude; |
74 QMap<QString, QStringList> library; |
64 QMap<QString, QStringList> library; |
75 // (output file) (source , command) |
65 // (output file) (source , command) |
76 QMap<QString, QStringList> makmakeCommands; |
66 QMap<QString, QStringList> makmakeCommands; |
77 QStringList overriddenMmpKeywords; |
67 QStringList overriddenMmpKeywords; |
78 |
68 |
79 QStringList generatedFiles; |
|
80 QStringList generatedDirs; |
|
81 QHash<QString, QString> qt2S60LangMapTable; |
|
82 |
|
83 QString fixedTarget; |
|
84 QString translationFileName; |
|
85 |
|
86 void removeSpecialCharacters(QString& str); |
|
87 QString fixPathForMmp(const QString& origPath, const QDir& parentDir); |
69 QString fixPathForMmp(const QString& origPath, const QDir& parentDir); |
88 QString absolutizePath(const QString& origPath); |
70 QString absolutizePath(const QString& origPath); |
89 |
71 |
90 virtual bool writeMakefile(QTextStream &t); |
72 virtual bool writeMakefile(QTextStream &t); |
91 void generatePkgFile(const QString &iconFile, DeploymentList &depList); |
|
92 bool containsStartWithItem(const QChar &c, const QStringList& src); |
|
93 |
73 |
94 virtual void init(); |
74 virtual void init(); |
95 |
75 |
96 QString getTargetExtension(); |
76 QString getTargetExtension(); |
97 |
77 |
108 QString &checkString); |
88 QString &checkString); |
109 |
89 |
110 void writeHeader(QTextStream &t); |
90 void writeHeader(QTextStream &t); |
111 void writeBldInfContent(QTextStream& t, |
91 void writeBldInfContent(QTextStream& t, |
112 bool addDeploymentExtension, |
92 bool addDeploymentExtension, |
113 const QString &iconFile, |
93 const QString &iconFile); |
114 DeploymentList &depList); |
|
115 |
94 |
116 static bool removeDuplicatedStrings(QStringList& stringList); |
95 static bool removeDuplicatedStrings(QStringList& stringList); |
117 |
96 |
118 void writeMmpFileHeader(QTextStream &t); |
97 void writeMmpFileHeader(QTextStream &t); |
119 void writeMmpFile(QString &filename, QStringList &symbianLangCodes); |
98 void writeMmpFile(QString &filename, QStringList &symbianLangCodes); |
138 void writeMmpFileBinaryVersionPart(QTextStream& t); |
117 void writeMmpFileBinaryVersionPart(QTextStream& t); |
139 void writeMmpFileRulesPart(QTextStream& t); |
118 void writeMmpFileRulesPart(QTextStream& t); |
140 |
119 |
141 void writeCustomDefFile(); |
120 void writeCustomDefFile(); |
142 |
121 |
143 void writeRegRssFile(QMap<QString, QStringList> &useritems); |
|
144 void writeRegRssList(QTextStream &t, QStringList &userList, |
|
145 const QString &listTag, |
|
146 const QString &listItem); |
|
147 void writeRssFile(QString &numberOfIcons, QString &iconfile); |
|
148 void writeLocFile(QStringList &symbianLangCodes); |
|
149 void writeSymbianLocFile(QStringList &symbianLangCodes); |
|
150 void readRssRules(QString &numberOfIcons, |
|
151 QString &iconFile, |
|
152 QMap<QString, QStringList> &userRssRules); |
|
153 |
|
154 QStringList symbianLangCodesFromTsFiles(); |
|
155 void fillQt2S60LangMapTable(); |
|
156 void modifyQt2S60LangMapTable(); |
|
157 |
|
158 void appendIfnotExist(QStringList &list, QString value); |
122 void appendIfnotExist(QStringList &list, QString value); |
159 void appendIfnotExist(QStringList &list, QStringList values); |
123 void appendIfnotExist(QStringList &list, QStringList values); |
160 |
124 |
161 QString removePathSeparators(QString &file); |
|
162 QString removeTrailingPathSeparators(QString &file); |
125 QString removeTrailingPathSeparators(QString &file); |
163 void generateCleanCommands(QTextStream& t, |
126 void generateCleanCommands(QTextStream& t, |
164 const QStringList& toClean, |
127 const QStringList& toClean, |
165 const QString& cmd, |
128 const QString& cmd, |
166 const QString& cmdOptions, |
129 const QString& cmdOptions, |
167 const QString& itemPrefix, |
130 const QString& itemPrefix, |
168 const QString& itemSuffix); |
131 const QString& itemSuffix); |
169 |
132 |
170 void writeSisTargets(QTextStream &t); |
|
171 void generateDistcleanTargets(QTextStream& t); |
133 void generateDistcleanTargets(QTextStream& t); |
172 void generateExecutionTargets(QTextStream& t, const QStringList& platforms); |
134 void generateExecutionTargets(QTextStream& t, const QStringList& platforms); |
173 |
135 |
174 // Subclass implements |
136 // Subclass implements |
175 virtual void writeBldInfExtensionRulesPart(QTextStream& t, const QString &iconTargetFile) = 0; |
137 virtual void writeBldInfExtensionRulesPart(QTextStream& t, const QString &iconTargetFile) = 0; |