summaryrefslogtreecommitdiff
path: root/src/shared/proparser
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-05-04 21:16:56 +0200
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2012-07-04 12:48:00 +0200
commit5a6625245bec59bd2462b9726cc977a119cd21fd (patch)
tree2e0d657cd9cd65714bf4eddfe0f5407ac2bd5c29 /src/shared/proparser
parent55cad4a424d3552d0658a4d3e395b12d2d472b12 (diff)
downloadqt-creator-5a6625245bec59bd2462b9726cc977a119cd21fd.tar.gz
introduce ProValueMap typedef for brevity's sake
Change-Id: I41b7202acb2889d217d1f437050443bea853ee87 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/shared/proparser')
-rw-r--r--src/shared/proparser/proitems.h2
-rw-r--r--src/shared/proparser/qmakebuiltins.cpp26
-rw-r--r--src/shared/proparser/qmakeevaluator.cpp21
-rw-r--r--src/shared/proparser/qmakeevaluator.h10
-rw-r--r--src/shared/proparser/qmakeglobals.h2
5 files changed, 30 insertions, 31 deletions
diff --git a/src/shared/proparser/proitems.h b/src/shared/proparser/proitems.h
index c9092e8c34..23bae899f0 100644
--- a/src/shared/proparser/proitems.h
+++ b/src/shared/proparser/proitems.h
@@ -127,6 +127,8 @@ public:
void removeDuplicates();
};
+typedef QHash<ProString, ProStringList> ProValueMap;
+
// These token definitions affect both ProFileEvaluator and ProWriter
enum ProToken {
TokTerminator = 0, // end of stream (possibly not included in length; must be zero)
diff --git a/src/shared/proparser/qmakebuiltins.cpp b/src/shared/proparser/qmakebuiltins.cpp
index 1466933d4d..da5f0cf16c 100644
--- a/src/shared/proparser/qmakebuiltins.cpp
+++ b/src/shared/proparser/qmakebuiltins.cpp
@@ -192,7 +192,7 @@ void QMakeEvaluator::runProcess(QProcess *proc, const QString &command,
void QMakeEvaluator::populateDeps(
const ProStringList &deps, const ProString &prefix,
- QHash<ProString, QSet<ProString> > &dependencies, QHash<ProString, ProStringList> &dependees,
+ QHash<ProString, QSet<ProString> > &dependencies, ProValueMap &dependees,
ProStringList &rootSet) const
{
foreach (const ProString &item, deps)
@@ -413,7 +413,7 @@ ProStringList QMakeEvaluator::evaluateExpandFunction(
if (args.count() != 2) {
evalError(fL1S("fromfile(file, variable) requires two arguments."));
} else {
- QHash<ProString, ProStringList> vars;
+ ProValueMap vars;
QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
fn.detach();
if (evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, EvalProOnly))
@@ -607,7 +607,7 @@ ProStringList QMakeEvaluator::evaluateExpandFunction(
evalError(fL1S("%1(var, prefix) requires one or two arguments").arg(func.toQString(m_tmp1)));
} else {
QHash<ProString, QSet<ProString> > dependencies;
- QHash<ProString, ProStringList> dependees;
+ ProValueMap dependees;
ProStringList rootSet;
ProStringList orgList = valuesDirect(args.at(0));
populateDeps(orgList, (args.count() < 2 ? ProString() : args.at(1)),
@@ -680,7 +680,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
}
const ProString &var = map(args.at(0));
for (int i = m_valuemapStack.size(); --i > 0; ) {
- QHash<ProString, ProStringList>::Iterator it = m_valuemapStack[i].find(var);
+ ProValueMap::Iterator it = m_valuemapStack[i].find(var);
if (it != m_valuemapStack.at(i).end()) {
if (it->constBegin() == statics.fakeValue.constBegin()) {
// This is stupid, but qmake doesn't propagate deletions
@@ -700,7 +700,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
if (args.count() < 2 || args.count() > 3) {
evalError(fL1S("infile(file, var, [values]) requires two or three arguments."));
} else {
- QHash<ProString, ProStringList> vars;
+ ProValueMap vars;
QString fn = resolvePath(m_option->expandEnvVars(args.at(0).toQString(m_tmp1)));
fn.detach();
if (!evaluateFileInto(fn, QMakeHandler::EvalAuxFile, &vars, EvalProOnly))
@@ -941,8 +941,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
.arg(function.toQString(m_tmp1)));
return ReturnFalse;
}
- QHash<ProString, ProStringList> *hsh;
- QHash<ProString, ProStringList>::Iterator it;
+ ProValueMap *hsh;
+ ProValueMap::Iterator it;
const ProString &var = map(args.at(0));
if (!(hsh = findValues(var, &it)))
return ReturnFalse;
@@ -960,8 +960,8 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
.arg(function.toQString(m_tmp1)));
return ReturnFalse;
}
- QHash<ProString, ProStringList> *hsh;
- QHash<ProString, ProStringList>::Iterator it;
+ ProValueMap *hsh;
+ ProValueMap::Iterator it;
const ProString &var = map(args.at(0));
if (!(hsh = findValues(var, &it)))
return ReturnFalse;
@@ -991,11 +991,11 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
if (parseInto.isEmpty()) {
ok = evaluateFile(fn, QMakeHandler::EvalIncludeFile, LoadProOnly);
} else {
- QHash<ProString, ProStringList> symbols;
+ ProValueMap symbols;
if ((ok = evaluateFileInto(fn, QMakeHandler::EvalAuxFile,
&symbols, EvalWithSetup))) {
- QHash<ProString, ProStringList> newMap;
- for (QHash<ProString, ProStringList>::ConstIterator
+ ProValueMap newMap;
+ for (ProValueMap::ConstIterator
it = m_valuemapStack.top().constBegin(),
end = m_valuemapStack.top().constEnd();
it != end; ++it) {
@@ -1005,7 +1005,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
|| ky.at(parseInto.length()) == QLatin1Char('.'))))
newMap[it.key()] = it.value();
}
- for (QHash<ProString, ProStringList>::ConstIterator it = symbols.constBegin();
+ for (ProValueMap::ConstIterator it = symbols.constBegin();
it != symbols.constEnd(); ++it) {
const QString &ky = it.key().toQString(m_tmp1);
if (!ky.startsWith(QLatin1Char('.')))
diff --git a/src/shared/proparser/qmakeevaluator.cpp b/src/shared/proparser/qmakeevaluator.cpp
index 01899b1a51..2ed7ee90ad 100644
--- a/src/shared/proparser/qmakeevaluator.cpp
+++ b/src/shared/proparser/qmakeevaluator.cpp
@@ -164,7 +164,7 @@ QMakeEvaluator::QMakeEvaluator(QMakeGlobals *option,
m_skipLevel = 0;
m_loopLevel = 0;
m_listCount = 0;
- m_valuemapStack.push(QHash<ProString, ProStringList>());
+ m_valuemapStack.push(ProValueMap());
}
QMakeEvaluator::~QMakeEvaluator()
@@ -880,7 +880,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
}
if (!qmake_cache.isEmpty()) {
qmake_cache = resolvePath(qmake_cache);
- QHash<ProString, ProStringList> cache_valuemap;
+ ProValueMap cache_valuemap;
if (evaluateFileInto(qmake_cache, QMakeHandler::EvalConfigFile,
&cache_valuemap, EvalProOnly)) {
if (m_option->qmakespec.isEmpty()) {
@@ -1457,7 +1457,7 @@ bool QMakeEvaluator::modesForGenerator(const QString &gen,
void QMakeEvaluator::validateModes() const
{
if (m_option->target_mode == QMakeGlobals::TARG_UNKNOWN_MODE) {
- const QHash<ProString, ProStringList> &vals =
+ const ProValueMap &vals =
m_option->base_valuemap.isEmpty() ? m_valuemapStack[0] : m_option->base_valuemap;
QMakeGlobals::TARG_MODE target_mode;
const ProStringList &gen = vals.value(ProString("MAKEFILE_GENERATOR"));
@@ -1597,7 +1597,7 @@ ProStringList QMakeEvaluator::evaluateFunction(
evalError(fL1S("ran into infinite recursion (depth > 100)."));
oki = false;
} else {
- m_valuemapStack.push(QHash<ProString, ProStringList>());
+ m_valuemapStack.push(ProValueMap());
m_locationStack.push(m_current);
int loopLevel = m_loopLevel;
m_loopLevel = 0;
@@ -1699,11 +1699,10 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateConditionalFunction(
return evaluateConditionalFunction(function, expandVariableReferences(tokPtr, 5, true));
}
-QHash<ProString, ProStringList> *QMakeEvaluator::findValues(
- const ProString &variableName, QHash<ProString, ProStringList>::Iterator *rit)
+ProValueMap *QMakeEvaluator::findValues(const ProString &variableName, ProValueMap::Iterator *rit)
{
for (int i = m_valuemapStack.size(); --i >= 0; ) {
- QHash<ProString, ProStringList>::Iterator it = m_valuemapStack[i].find(variableName);
+ ProValueMap::Iterator it = m_valuemapStack[i].find(variableName);
if (it != m_valuemapStack[i].end()) {
if (it->constBegin() == statics.fakeValue.constBegin())
return 0;
@@ -1716,14 +1715,14 @@ QHash<ProString, ProStringList> *QMakeEvaluator::findValues(
ProStringList &QMakeEvaluator::valuesRef(const ProString &variableName)
{
- QHash<ProString, ProStringList>::Iterator it = m_valuemapStack.top().find(variableName);
+ ProValueMap::Iterator it = m_valuemapStack.top().find(variableName);
if (it != m_valuemapStack.top().end()) {
if (it->constBegin() == statics.fakeValue.constBegin())
it->clear();
return *it;
}
for (int i = m_valuemapStack.size() - 1; --i >= 0; ) {
- QHash<ProString, ProStringList>::ConstIterator it = m_valuemapStack.at(i).constFind(variableName);
+ ProValueMap::ConstIterator it = m_valuemapStack.at(i).constFind(variableName);
if (it != m_valuemapStack.at(i).constEnd()) {
ProStringList &ret = m_valuemapStack.top()[variableName];
if (it->constBegin() != statics.fakeValue.constBegin())
@@ -1737,7 +1736,7 @@ ProStringList &QMakeEvaluator::valuesRef(const ProString &variableName)
ProStringList QMakeEvaluator::valuesDirect(const ProString &variableName) const
{
for (int i = m_valuemapStack.size(); --i >= 0; ) {
- QHash<ProString, ProStringList>::ConstIterator it = m_valuemapStack.at(i).constFind(variableName);
+ ProValueMap::ConstIterator it = m_valuemapStack.at(i).constFind(variableName);
if (it != m_valuemapStack.at(i).constEnd()) {
if (it->constBegin() == statics.fakeValue.constBegin())
break;
@@ -1953,7 +1952,7 @@ bool QMakeEvaluator::evaluateFeatureFile(const QString &fileName)
bool QMakeEvaluator::evaluateFileInto(
const QString &fileName, QMakeHandler::EvalFileType type,
- QHash<ProString, ProStringList> *values, EvalIntoMode mode)
+ ProValueMap *values, EvalIntoMode mode)
{
QMakeEvaluator visitor(m_option, m_parser, m_handler);
#ifdef PROEVALUATOR_CUMULATIVE
diff --git a/src/shared/proparser/qmakeevaluator.h b/src/shared/proparser/qmakeevaluator.h
index 1724d7d002..5d27430847 100644
--- a/src/shared/proparser/qmakeevaluator.h
+++ b/src/shared/proparser/qmakeevaluator.h
@@ -112,8 +112,7 @@ public:
void visitProVariable(ushort tok, const ProStringList &curr, const ushort *&tokPtr);
static const ProString &map(const ProString &var);
- QHash<ProString, ProStringList> *findValues(const ProString &variableName,
- QHash<ProString, ProStringList>::Iterator *it);
+ ProValueMap *findValues(const ProString &variableName, ProValueMap::Iterator *it);
ProStringList valuesDirect(const ProString &variableName) const;
ProStringList split_value_list(const QString &vals, const ProFile *source = 0);
@@ -133,7 +132,7 @@ public:
bool evaluateFeatureFile(const QString &fileName);
enum EvalIntoMode { EvalProOnly, EvalWithSetup };
bool evaluateFileInto(const QString &fileName, QMakeHandler::EvalFileType type,
- QHash<ProString, ProStringList> *values, // output-only
+ ProValueMap *values, // output-only
EvalIntoMode mode);
void evalError(const QString &msg) const;
@@ -162,8 +161,7 @@ public:
void populateDeps(
const ProStringList &deps, const ProString &prefix,
QHash<ProString, QSet<ProString> > &dependencies,
- QHash<ProString, ProStringList> &dependees,
- ProStringList &rootSet) const;
+ ProValueMap &dependees, ProStringList &rootSet) const;
QString fixPathToLocalOS(const QString &str) const;
@@ -195,7 +193,7 @@ public:
int m_listCount;
ProFunctionDefs m_functionDefs;
ProStringList m_returnValue;
- QStack<QHash<ProString, ProStringList> > m_valuemapStack; // VariableName must be us-ascii, the content however can be non-us-ascii.
+ QStack<ProValueMap> m_valuemapStack; // VariableName must be us-ascii, the content however can be non-us-ascii.
QString m_tmp1, m_tmp2, m_tmp3, m_tmp[2]; // Temporaries for efficient toQString
QMakeGlobals *m_option;
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index 67a7e59b9d..9e63ae5105 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -79,7 +79,7 @@ private:
QString getEnv(const QString &) const;
QStringList getPathListEnv(const QString &var) const;
- QHash<ProString, ProStringList> base_valuemap; // Cached results of qmake.conf, .qmake.cache & default_pre.prf
+ ProValueMap base_valuemap; // Cached results of qmake.conf, .qmake.cache & default_pre.prf
ProFunctionDefs base_functions;
QStringList feature_roots;
QString qmakespec_name;