diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-01-23 15:58:55 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-01-24 14:01:31 +0000 |
commit | 2cb7c81e620d224d386860a637dc889acb15435e (patch) | |
tree | 4b4b92a1d318f71101566edee3acd72cbe424f07 /src/shared | |
parent | 8a69c254757eab7852443b5e4bd5eafb68908d3d (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.cpp | 11 | ||||
-rw-r--r-- | src/shared/proparser/qmakeglobals.h | 1 |
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 |