aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-01-23 15:58:55 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-01-24 14:01:31 +0000
commit2cb7c81e620d224d386860a637dc889acb15435e (patch)
tree4b4b92a1d318f71101566edee3acd72cbe424f07 /src/shared
parent8a69c254757eab7852443b5e4bd5eafb68908d3d (diff)
de-duplicate qmake property parsing code
Change-Id: I7555de5c72a9250b31e20fc60e39680d19882fcb Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/proparser/qmakeglobals.cpp11
-rw-r--r--src/shared/proparser/qmakeglobals.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/shared/proparser/qmakeglobals.cpp b/src/shared/proparser/qmakeglobals.cpp
index 5aa60c6f77..3ca949cb96 100644
--- a/src/shared/proparser/qmakeglobals.cpp
+++ b/src/shared/proparser/qmakeglobals.cpp
@@ -324,6 +324,13 @@ bool QMakeGlobals::initProperties()
QT_PCLOSE(proc);
}
#endif
+ parseProperties(data, properties);
+ return true;
+}
+#endif
+
+void QMakeGlobals::parseProperties(const QByteArray &data, QHash<ProKey, ProString> &properties)
+{
const auto lines = data.split('\n');
for (QByteArray line : lines) {
int off = line.indexOf(':');
@@ -334,6 +341,8 @@ bool QMakeGlobals::initProperties()
QString name = QString::fromLatin1(line.left(off));
ProString value = ProString(QDir::fromNativeSeparators(
QString::fromLocal8Bit(line.mid(off + 1))));
+ if (value.isNull())
+ value = ProString(""); // Make sure it is not null, to discern from missing keys
properties.insert(ProKey(name), value);
if (name.startsWith(QLatin1String("QT_"))) {
bool plain = !name.contains(QLatin1Char('/'));
@@ -365,9 +374,7 @@ bool QMakeGlobals::initProperties()
}
}
}
- return true;
}
-#endif
#endif // QT_BUILD_QMAKE
QT_END_NAMESPACE
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index 82fad78b88..98b269a30a 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -123,6 +123,7 @@ public:
void setQMakeProperty(QMakeProperty *prop) { property = prop; }
ProString propertyValue(const ProKey &name) const { return property->value(name); }
#else
+ static void parseProperties(const QByteArray &data, QHash<ProKey, ProString> &props);
# ifdef PROEVALUATOR_INIT_PROPS
bool initProperties();
# else