diff --git a/src/plugins/qtsupport/profilereader.h b/src/plugins/qtsupport/profilereader.h index 54812ca4c4a..01271e76cf2 100644 --- a/src/plugins/qtsupport/profilereader.h +++ b/src/plugins/qtsupport/profilereader.h @@ -48,8 +48,7 @@ namespace Internal { class QtSupportPlugin; } -class QTSUPPORT_EXPORT ProMessageHandler : public QObject, - public QMakeParserHandler, public QMakeEvaluatorHandler +class QTSUPPORT_EXPORT ProMessageHandler : public QObject, public QMakeHandler { Q_OBJECT diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index 067867ecec5..7c993fc1862 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -46,7 +46,7 @@ void ProFileEvaluator::initialize() } ProFileEvaluator::ProFileEvaluator(QMakeGlobals *option, QMakeParser *parser, - QMakeEvaluatorHandler *handler) + QMakeHandler *handler) : d(new QMakeEvaluator(option, parser, handler)) { } @@ -187,7 +187,7 @@ ProFileEvaluator::TemplateType ProFileEvaluator::templateType() const bool ProFileEvaluator::accept(ProFile *pro, QMakeEvaluator::LoadFlags flags) { - return d->visitProFile(pro, QMakeEvaluatorHandler::EvalProjectFile, flags) == QMakeEvaluator::ReturnTrue; + return d->visitProFile(pro, QMakeHandler::EvalProjectFile, flags) == QMakeEvaluator::ReturnTrue; } QString ProFileEvaluator::propertyValue(const QString &name) const diff --git a/src/shared/proparser/profileevaluator.h b/src/shared/proparser/profileevaluator.h index d467a5f5a6a..404df8b62e0 100644 --- a/src/shared/proparser/profileevaluator.h +++ b/src/shared/proparser/profileevaluator.h @@ -45,7 +45,7 @@ QT_BEGIN_NAMESPACE class QMakeGlobals; class QMakeParser; class QMakeEvaluator; -class QMakeEvaluatorHandler; +class QMakeHandler; class QMAKE_EXPORT ProFileEvaluator { @@ -62,7 +62,7 @@ public: // Call this from a concurrency-free context static void initialize(); - ProFileEvaluator(QMakeGlobals *option, QMakeParser *parser, QMakeEvaluatorHandler *handler); + ProFileEvaluator(QMakeGlobals *option, QMakeParser *parser, QMakeHandler *handler); ~ProFileEvaluator(); ProFileEvaluator::TemplateType templateType() const; diff --git a/src/shared/proparser/qmakebuiltins.cpp b/src/shared/proparser/qmakebuiltins.cpp index c43bf144ec5..96878f3a07e 100644 --- a/src/shared/proparser/qmakebuiltins.cpp +++ b/src/shared/proparser/qmakebuiltins.cpp @@ -416,7 +416,7 @@ ProStringList QMakeEvaluator::evaluateExpandFunction( QHash vars; QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1))); fn.detach(); - if (evaluateFileInto(fn, QMakeEvaluatorHandler::EvalAuxFile, + if (evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, &m_functionDefs, EvalWithDefaults)) ret = vars.value(map(args.at(1))); } @@ -704,7 +704,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction( QHash vars; QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1))); fn.detach(); - if (!evaluateFileInto(fn, QMakeEvaluatorHandler::EvalAuxFile, + if (!evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, &m_functionDefs, EvalWithDefaults)) return ReturnFalse; if (args.count() == 2) @@ -991,10 +991,10 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction( fn.detach(); bool ok; if (parseInto.isEmpty()) { - ok = evaluateFile(fn, QMakeEvaluatorHandler::EvalIncludeFile, LoadProOnly); + ok = evaluateFile(fn, QMakeHandler::EvalIncludeFile, LoadProOnly); } else { QHash symbols; - if ((ok = evaluateFileInto(fn, QMakeEvaluatorHandler::EvalAuxFile, + if ((ok = evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &symbols, 0, EvalWithSetup))) { QHash newMap; for (QHash::ConstIterator diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index 5fc643db418..55810a121ae 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -150,7 +150,7 @@ const ProString &QMakeEvaluator::map(const ProString &var) QMakeEvaluator::QMakeEvaluator(QMakeGlobals *option, - QMakeParser *parser, QMakeEvaluatorHandler *handler) + QMakeParser *parser, QMakeHandler *handler) : m_option(option), m_parser(parser), m_handler(handler) { // So that single-threaded apps don't have to call initialize() for now. @@ -834,7 +834,7 @@ void QMakeEvaluator::visitCmdLine(const QString &cmds) } QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( - ProFile *pro, QMakeEvaluatorHandler::EvalFileType type, LoadFlags flags) + ProFile *pro, QMakeHandler::EvalFileType type, LoadFlags flags) { if (!m_cumulative && !pro->isOk()) return ReturnFalse; @@ -882,7 +882,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( if (!qmake_cache.isEmpty()) { qmake_cache = resolvePath(qmake_cache); QHash cache_valuemap; - if (evaluateFileInto(qmake_cache, QMakeEvaluatorHandler::EvalConfigFile, + if (evaluateFileInto(qmake_cache, QMakeHandler::EvalConfigFile, &cache_valuemap, 0, EvalProOnly)) { if (m_option->qmakespec.isEmpty()) { const ProStringList &vals = cache_valuemap.value(ProString("QMAKESPEC")); @@ -939,13 +939,12 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( m_option->qmakespec = QDir::cleanPath(qmakespec); QString spec = m_option->qmakespec + QLatin1String("/qmake.conf"); - if (!evaluateFileDirect(spec, - QMakeEvaluatorHandler::EvalConfigFile, LoadProOnly)) { + if (!evaluateFileDirect(spec, QMakeHandler::EvalConfigFile, LoadProOnly)) { m_handler->configError( fL1S("Could not read qmake configuration file %1").arg(spec)); } else if (!m_option->cachefile.isEmpty()) { evaluateFileDirect(m_option->cachefile, - QMakeEvaluatorHandler::EvalConfigFile, LoadProOnly); + QMakeHandler::EvalConfigFile, LoadProOnly); } m_option->qmakespec_name = IoUtils::fileName(m_option->qmakespec).toString(); if (m_option->qmakespec_name == QLatin1String("default")) { @@ -1884,7 +1883,7 @@ ProString QMakeEvaluator::first(const ProString &variableName) const } bool QMakeEvaluator::evaluateFileDirect( - const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, LoadFlags flags) + const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags) { if (ProFile *pro = m_parser->parsedProFile(fileName, true)) { m_locationStack.push(m_current); @@ -1898,7 +1897,7 @@ bool QMakeEvaluator::evaluateFileDirect( } bool QMakeEvaluator::evaluateFile( - const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, LoadFlags flags) + const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags) { if (fileName.isEmpty()) return false; @@ -1955,7 +1954,7 @@ bool QMakeEvaluator::evaluateFeatureFile(const QString &fileName) #endif // The path is fully normalized already. - bool ok = evaluateFileDirect(fn, QMakeEvaluatorHandler::EvalFeatureFile, LoadProOnly); + bool ok = evaluateFileDirect(fn, QMakeHandler::EvalFeatureFile, LoadProOnly); #ifdef PROEVALUATOR_CUMULATIVE m_cumulative = cumulative; @@ -1964,7 +1963,7 @@ bool QMakeEvaluator::evaluateFeatureFile(const QString &fileName) } bool QMakeEvaluator::evaluateFileInto( - const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, + const QString &fileName, QMakeHandler::EvalFileType type, QHash *values, ProFunctionDefs *funcs, EvalIntoMode mode) { ProFileEvaluator visitor(m_option, m_parser, m_handler); diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h index 4dd697eda37..a00a3264083 100644 --- a/src/shared/proparser/qmakeevaluator.h +++ b/src/shared/proparser/qmakeevaluator.h @@ -33,6 +33,7 @@ #ifndef QMAKEEVALUATOR_H #define QMAKEEVALUATOR_H +#include "qmakeparser.h" #include "qmakeglobals.h" #include "ioutils.h" @@ -44,9 +45,7 @@ QT_BEGIN_NAMESPACE -class QMakeParser; - -class QMAKE_EXPORT QMakeEvaluatorHandler +class QMAKE_EXPORT QMakeHandler : public QMakeParserHandler { public: // qmake/project configuration error @@ -75,7 +74,7 @@ public: static void initStatics(); static void initFunctionStatics(); QMakeEvaluator(QMakeGlobals *option, QMakeParser *parser, - QMakeEvaluatorHandler *handler); + QMakeHandler *handler); ~QMakeEvaluator(); ProStringList values(const ProString &variableName) const; @@ -103,7 +102,7 @@ public: void skipExpression(const ushort *&tokPtr); void visitCmdLine(const QString &cmds); - VisitReturn visitProFile(ProFile *pro, QMakeEvaluatorHandler::EvalFileType type, + VisitReturn visitProFile(ProFile *pro, QMakeHandler::EvalFileType type, LoadFlags flags); VisitReturn visitProBlock(ProFile *pro, const ushort *tokPtr); VisitReturn visitProBlock(const ushort *tokPtr); @@ -127,13 +126,13 @@ public: QString resolvePath(const QString &fileName) const { return ProFileEvaluatorInternal::IoUtils::resolvePath(currentDirectory(), fileName); } - bool evaluateFileDirect(const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, + bool evaluateFileDirect(const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags); - bool evaluateFile(const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, + bool evaluateFile(const QString &fileName, QMakeHandler::EvalFileType type, LoadFlags flags); bool evaluateFeatureFile(const QString &fileName); enum EvalIntoMode { EvalProOnly, EvalWithDefaults, EvalWithSetup }; - bool evaluateFileInto(const QString &fileName, QMakeEvaluatorHandler::EvalFileType type, + bool evaluateFileInto(const QString &fileName, QMakeHandler::EvalFileType type, QHash *values, ProFunctionDefs *defs, EvalIntoMode mode); // values are output-only, defs are input-only void evalError(const QString &msg) const; @@ -201,7 +200,7 @@ public: QMakeGlobals *m_option; QMakeParser *m_parser; - QMakeEvaluatorHandler *m_handler; + QMakeHandler *m_handler; enum VarName { V_LITERAL_DOLLAR, V_LITERAL_HASH, V_LITERAL_WHITESPACE, diff --git a/tests/manual/proparser/main.cpp b/tests/manual/proparser/main.cpp index 43d55eab1b9..5aa0c363089 100644 --- a/tests/manual/proparser/main.cpp +++ b/tests/manual/proparser/main.cpp @@ -53,14 +53,11 @@ static void print(const QString &fileName, int lineNo, const QString &msg) qWarning("%s", qPrintable(msg)); } -class ParseHandler : public QMakeParserHandler { +class EvalHandler : public QMakeHandler { public: virtual void parseError(const QString &fileName, int lineNo, const QString &msg) { print(fileName, lineNo, msg); } -}; -class EvalHandler : public QMakeEvaluatorHandler { -public: virtual void configError(const QString &msg) { qWarning("%s", qPrintable(msg)); } virtual void evalError(const QString &fileName, int lineNo, const QString &msg) @@ -72,7 +69,6 @@ public: virtual void doneWithEval(ProFile *) {} }; -static ParseHandler parseHandler; static EvalHandler evalHandler; static QString value(ProFileEvaluator &reader, const QString &variable) @@ -165,7 +161,7 @@ int main(int argc, char **argv) option.initProperties(QLibraryInfo::location(QLibraryInfo::BinariesPath) + QLatin1String("/qmake")); if (args.count() >= 4) option.setCommandLineArguments(args.mid(3)); - QMakeParser parser(0, &parseHandler); + QMakeParser parser(0, &evalHandler); bool cumulative = args[0] == QLatin1String("true"); QFileInfo infi(args[1]);