qmake/project.h
changeset 30 5dc02b23752f
parent 18 2f34d5167611
child 33 3e2da88830cd
equal deleted inserted replaced
29:b72c6db6890b 30:5dc02b23752f
    76     QStack<FunctionBlock *> function_blocks;
    76     QStack<FunctionBlock *> function_blocks;
    77     IteratorBlock *iterator;
    77     IteratorBlock *iterator;
    78     FunctionBlock *function;
    78     FunctionBlock *function;
    79     QMap<QString, FunctionBlock*> testFunctions, replaceFunctions;
    79     QMap<QString, FunctionBlock*> testFunctions, replaceFunctions;
    80 
    80 
       
    81     bool recursive;
    81     bool own_prop;
    82     bool own_prop;
    82     QString pfile, cfile;
    83     QString pfile, cfile;
    83     QMakeProperty *prop;
    84     QMakeProperty *prop;
    84     void reset();
    85     void reset();
    85     QMap<QString, QStringList> vars, base_vars, cache;
    86     QMap<QString, QStringList> vars, base_vars, cache;
   103     bool doProjectCheckReqs(const QStringList &deps, QMap<QString, QStringList> &place);
   104     bool doProjectCheckReqs(const QStringList &deps, QMap<QString, QStringList> &place);
   104     bool doVariableReplace(QString &str, QMap<QString, QStringList> &place);
   105     bool doVariableReplace(QString &str, QMap<QString, QStringList> &place);
   105     QStringList doVariableReplaceExpand(const QString &str, QMap<QString, QStringList> &place, bool *ok=0);
   106     QStringList doVariableReplaceExpand(const QString &str, QMap<QString, QStringList> &place, bool *ok=0);
   106     void init(QMakeProperty *, const QMap<QString, QStringList> *);
   107     void init(QMakeProperty *, const QMap<QString, QStringList> *);
   107     QStringList &values(const QString &v, QMap<QString, QStringList> &place);
   108     QStringList &values(const QString &v, QMap<QString, QStringList> &place);
       
   109     void validateModes();
   108 
   110 
   109 public:
   111 public:
   110     QMakeProject() { init(0, 0); }
   112     QMakeProject() { init(0, 0); }
   111     QMakeProject(QMakeProperty *p) { init(p, 0); }
   113     QMakeProject(QMakeProperty *p) { init(p, 0); }
   112     QMakeProject(QMakeProject *p, const QMap<QString, QStringList> *nvars=0);
   114     QMakeProject(QMakeProject *p, const QMap<QString, QStringList> *nvars=0);
   146     bool test(const QString &v);
   148     bool test(const QString &v);
   147     bool test(const QString &func, const QList<QStringList> &args);
   149     bool test(const QString &func, const QList<QStringList> &args);
   148     bool isActiveConfig(const QString &x, bool regex=false,
   150     bool isActiveConfig(const QString &x, bool regex=false,
   149                         QMap<QString, QStringList> *place=NULL);
   151                         QMap<QString, QStringList> *place=NULL);
   150 
   152 
   151     bool isSet(const QString &v);
   153     bool isSet(const QString &v); // No compat mapping, no magic variables
   152     bool isEmpty(const QString &v);
   154     bool isEmpty(const QString &v); // With compat mapping, but no magic variables
   153     QStringList &values(const QString &v);
   155     QStringList &values(const QString &v); // With compat mapping and magic variables
   154     QString first(const QString &v);
   156     QString first(const QString &v); // ditto
   155     QMap<QString, QStringList> &variables();
   157     QMap<QString, QStringList> &variables(); // No compat mapping and magic, obviously
       
   158 
       
   159     bool isRecursive() const { return recursive; }
   156 
   160 
   157 protected:
   161 protected:
   158     friend class MakefileGenerator;
   162     friend class MakefileGenerator;
   159     bool read(const QString &file, QMap<QString, QStringList> &place);
   163     bool read(const QString &file, QMap<QString, QStringList> &place);
   160     bool read(QTextStream &file, QMap<QString, QStringList> &place);
   164     bool read(QTextStream &file, QMap<QString, QStringList> &place);
   173 { return cfile; }
   177 { return cfile; }
   174 
   178 
   175 inline QStringList &QMakeProject::values(const QString &v)
   179 inline QStringList &QMakeProject::values(const QString &v)
   176 { return values(v, vars); }
   180 { return values(v, vars); }
   177 
   181 
   178 inline bool QMakeProject::isEmpty(const QString &v)
       
   179 { return !isSet(v) || values(v).isEmpty(); }
       
   180 
       
   181 inline bool QMakeProject::isSet(const QString &v)
   182 inline bool QMakeProject::isSet(const QString &v)
   182 { return vars.contains(v); }
   183 { return vars.contains(v); }
   183 
   184 
   184 inline QString QMakeProject::first(const QString &v)
   185 inline QString QMakeProject::first(const QString &v)
   185 {
   186 {
   190 }
   191 }
   191 
   192 
   192 inline QMap<QString, QStringList> &QMakeProject::variables()
   193 inline QMap<QString, QStringList> &QMakeProject::variables()
   193 { return vars; }
   194 { return vars; }
   194 
   195 
   195 // Helper functions needed for Symbian
       
   196 bool isForSymbian();
       
   197 bool isForSymbianSbsv2();
       
   198 
       
   199 QT_END_NAMESPACE
   196 QT_END_NAMESPACE
   200 
   197 
   201 #endif // PROJECT_H
   198 #endif // PROJECT_H