qmake/generators/symbian/symmake.h
branchGCC_SURGE
changeset 31 5daf16870df6
parent 30 5dc02b23752f
child 33 3e2da88830cd
equal deleted inserted replaced
27:93b982ccede2 31:5daf16870df6
    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;