diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index fee5b3383df8b61fe4b693fdec0cc80342dd9dbc..b319606af24c42842f655260f5fc163b247ea464 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -1211,6 +1211,28 @@ void QMakeEvaluator::evaluateCommand(const QString &cmds, const QString &where) } } +void QMakeEvaluator::evaluateConfigFeatures() +{ + QSet<QString> processed; + forever { + bool finished = true; + ProStringList configs = values(statics.strCONFIG); + for (int i = configs.size() - 1; i >= 0; --i) { + QString config = configs.at(i).toQString(m_tmp1).toLower(); + if (!processed.contains(config)) { + config.detach(); + processed.insert(config); + if (evaluateFeatureFile(config, true)) { + finished = false; + break; + } + } + } + if (finished) + break; + } +} + QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( ProFile *pro, QMakeHandler::EvalFileType type, LoadFlags flags) { @@ -1319,24 +1341,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( evaluateFeatureFile(QLatin1String("default_post.prf")); - QSet<QString> processed; - forever { - bool finished = true; - ProStringList configs = values(statics.strCONFIG); - for (int i = configs.size() - 1; i >= 0; --i) { - QString config = configs.at(i).toQString(m_tmp1).toLower(); - if (!processed.contains(config)) { - config.detach(); - processed.insert(config); - if (evaluateFeatureFile(config, true)) { - finished = false; - break; - } - } - } - if (finished) - break; - } + evaluateConfigFeatures(); } m_profileStack.pop(); valuesRef(ProKey("PWD")) = ProStringList(ProString(currentDirectory())); diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h index b8d0bf461569e4ba7071e6a5aa4b5071a04ed334..ec7bf4f562dda75c2a03fe8464066b621f556777 100644 --- a/src/shared/proparser/qmakeevaluator.h +++ b/src/shared/proparser/qmakeevaluator.h @@ -159,6 +159,7 @@ public: bool evaluateFileInto(const QString &fileName, ProValueMap *values, // output-only LoadFlags flags); + void evaluateConfigFeatures(); void message(int type, const QString &msg) const; void evalError(const QString &msg) const { message(QMakeHandler::EvalError, msg); }