From 2f4171459ce2ddfb1f70a90cee3da35372fd8f5d Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 4 May 2012 19:26:32 +0200 Subject: [PATCH] give load()/include() with target and infile()/$$fromfile() a clean environment follow suit to qmake ... Change-Id: If9aa8b14e8b54768faef9151727bdb29fa1ed64b Reviewed-by: Daniel Teske Reviewed-by: Oswald Buddenhagen --- src/shared/proparser/qmakebuiltins.cpp | 8 +++----- src/shared/proparser/qmakeevaluator.cpp | 9 ++------- src/shared/proparser/qmakeevaluator.h | 4 ++-- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/shared/proparser/qmakebuiltins.cpp b/src/shared/proparser/qmakebuiltins.cpp index ffe8d07e61d..1466933d4d5 100644 --- a/src/shared/proparser/qmakebuiltins.cpp +++ b/src/shared/proparser/qmakebuiltins.cpp @@ -416,8 +416,7 @@ ProStringList QMakeEvaluator::evaluateExpandFunction( QHash vars; QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1))); fn.detach(); - if (evaluateFileInto(fn, QMakeHandler::EvalAuxFile, - &vars, &m_functionDefs, EvalProOnly)) + if (evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, EvalProOnly)) ret = vars.value(map(args.at(1))); } break; @@ -704,8 +703,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction( QHash vars; QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1))); fn.detach(); - if (!evaluateFileInto(fn, QMakeHandler::EvalAuxFile, - &vars, &m_functionDefs, EvalProOnly)) + if (!evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, EvalProOnly)) return ReturnFalse; if (args.count() == 2) return returnBool(vars.contains(args.at(1))); @@ -995,7 +993,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction( } else { QHash symbols; if ((ok = evaluateFileInto(fn, QMakeHandler::EvalAuxFile, - &symbols, 0, EvalWithSetup))) { + &symbols, EvalWithSetup))) { QHash newMap; for (QHash::ConstIterator it = m_valuemapStack.top().constBegin(), diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp index 7a5d3d9ef1c..6d41a8ee77e 100644 --- a/src/shared/proparser/qmakeevaluator.cpp +++ b/src/shared/proparser/qmakeevaluator.cpp @@ -882,7 +882,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile( qmake_cache = resolvePath(qmake_cache); QHash cache_valuemap; if (evaluateFileInto(qmake_cache, QMakeHandler::EvalConfigFile, - &cache_valuemap, 0, EvalProOnly)) { + &cache_valuemap, EvalProOnly)) { if (m_option->qmakespec.isEmpty()) { const ProStringList &vals = cache_valuemap.value(ProString("QMAKESPEC")); if (!vals.isEmpty()) @@ -1963,22 +1963,17 @@ bool QMakeEvaluator::evaluateFeatureFile(const QString &fileName) bool QMakeEvaluator::evaluateFileInto( const QString &fileName, QMakeHandler::EvalFileType type, - QHash *values, ProFunctionDefs *funcs, EvalIntoMode mode) + QHash *values, EvalIntoMode mode) { QMakeEvaluator visitor(m_option, m_parser, m_handler); #ifdef PROEVALUATOR_CUMULATIVE visitor.m_cumulative = false; #endif visitor.m_outputDir = m_outputDir; -// visitor.m_valuemapStack.top() = *values; - if (funcs) - visitor.m_functionDefs = *funcs; if (!visitor.evaluateFile(fileName, type, (mode == EvalWithSetup) ? LoadAll : LoadProOnly)) return false; *values = visitor.m_valuemapStack.top(); -// if (funcs) -// *funcs = visitor.m_functionDefs; return true; } diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h index 19db06e2077..6e792da6f22 100644 --- a/src/shared/proparser/qmakeevaluator.h +++ b/src/shared/proparser/qmakeevaluator.h @@ -133,8 +133,8 @@ public: bool evaluateFeatureFile(const QString &fileName); enum EvalIntoMode { EvalProOnly, EvalWithSetup }; bool evaluateFileInto(const QString &fileName, QMakeHandler::EvalFileType type, - QHash *values, ProFunctionDefs *defs, - EvalIntoMode mode); // values are output-only, defs are input-only + QHash *values, // output-only + EvalIntoMode mode); void evalError(const QString &msg) const; QList prepareFunctionArgs(const ushort *&tokPtr);