aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-01-24 13:33:14 +0100
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2017-01-24 14:01:25 +0000
commit8a69c254757eab7852443b5e4bd5eafb68908d3d (patch)
tree4e2d967e2c5d3f4bf53c595c7f00764106c5609c
parent8288ca1251fd49b10457b8f97e02e26f22c6ad31 (diff)
BaseQtVersion: use QMakeEvaluator's native format for m_versionInfo
Change-Id: I926bc97fe6fa510ac5a8fe77b64014333a69bd04 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/plugins/qtsupport/baseqtversion.cpp49
-rw-r--r--src/plugins/qtsupport/baseqtversion.h16
-rw-r--r--src/plugins/qtsupport/qtversionfactory.cpp2
-rw-r--r--src/shared/proparser/qmakeglobals.cpp7
-rw-r--r--src/shared/proparser/qmakeglobals.h1
5 files changed, 35 insertions, 40 deletions
diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp
index db0d4493910..a5218136a77 100644
--- a/src/plugins/qtsupport/baseqtversion.cpp
+++ b/src/plugins/qtsupport/baseqtversion.cpp
@@ -677,8 +677,8 @@ QStringList BaseQtVersion::warningReason() const
QStringList ret;
if (qtAbis().isEmpty())
ret << QCoreApplication::translate("QtVersion", "ABI detection failed: Make sure to use a matching compiler when building.");
- if (m_versionInfo.value(QLatin1String("QT_INSTALL_PREFIX/get"))
- != m_versionInfo.value(QLatin1String("QT_INSTALL_PREFIX"))) {
+ if (m_versionInfo.value(ProKey("QT_INSTALL_PREFIX/get"))
+ != m_versionInfo.value(ProKey("QT_INSTALL_PREFIX"))) {
ret << QCoreApplication::translate("QtVersion", "Non-installed -prefix build - for internal development only.");
}
return ret;
@@ -792,12 +792,13 @@ QString BaseQtVersion::toHtml(bool verbose) const
str << "<tr><td><b>" << QCoreApplication::translate("BaseQtVersion", "Version:")
<< "</b></td><td>" << qtVersionString() << "</td></tr>";
if (verbose) {
- const QHash<QString,QString> vInfo = versionInfo();
+ const QHash<ProKey, ProString> vInfo = versionInfo();
if (!vInfo.isEmpty()) {
- QStringList keys = vInfo.keys();
- keys.sort();
- foreach (QString variableName, keys) {
- const QString &value = vInfo.value(variableName);
+ QList<ProKey> keys = vInfo.keys();
+ Utils::sort(keys);
+ foreach (const ProKey &key, keys) {
+ const QString &value = vInfo.value(key).toQString();
+ QString variableName = key.toQString();
if (variableName != QLatin1String("QMAKE_MKSPECS")
&& !variableName.endsWith(QLatin1String("/raw"))) {
bool isPath = false;
@@ -1196,20 +1197,20 @@ void BaseQtVersion::updateVersionInfo() const
m_versionInfoUpToDate = true;
}
-QHash<QString,QString> BaseQtVersion::versionInfo() const
+QHash<ProKey,ProString> BaseQtVersion::versionInfo() const
{
updateVersionInfo();
return m_versionInfo;
}
-QString BaseQtVersion::qmakeProperty(const QHash<QString,QString> &versionInfo, const QByteArray &name,
+QString BaseQtVersion::qmakeProperty(const QHash<ProKey,ProString> &versionInfo, const QByteArray &name,
PropertyVariant variant)
{
- QString val = versionInfo.value(QString::fromLatin1(
- name + (variant == PropertyVariantGet ? "/get" : "/src")));
+ QString val = versionInfo.value(ProKey(QString::fromLatin1(
+ name + (variant == PropertyVariantGet ? "/get" : "/src")))).toQString();
if (!val.isNull())
return val;
- return versionInfo.value(QString::fromLatin1(name));
+ return versionInfo.value(ProKey(QString::fromLatin1(name))).toQString();
}
QString BaseQtVersion::qmakeProperty(const QByteArray &name, PropertyVariant variant) const
@@ -1410,7 +1411,7 @@ static QByteArray runQmakeQuery(const FileName &binary, const Environment &env,
}
bool BaseQtVersion::queryQMakeVariables(const FileName &binary, const Environment &env,
- QHash<QString, QString> *versionInfo, QString *error)
+ QHash<ProKey, ProString> *versionInfo, QString *error)
{
QString tmp;
if (!error)
@@ -1452,23 +1453,23 @@ bool BaseQtVersion::queryQMakeVariables(const FileName &binary, const Environmen
const int index = line.indexOf(QLatin1Char(':'));
if (index != -1) {
QString name = line.left(index);
- QString value = QDir::fromNativeSeparators(line.mid(index+1));
+ ProString value(QDir::fromNativeSeparators(line.mid(index+1)));
if (value.isNull())
- value = QLatin1String(""); // Make sure it is not null, to discern from missing keys
- versionInfo->insert(name, value);
+ value = ProString(""); // Make sure it is not null, to discern from missing keys
+ versionInfo->insert(ProKey(name), value);
if (name.startsWith(QLatin1String("QT_")) && !name.contains(QLatin1Char('/'))) {
if (name.startsWith(QLatin1String("QT_INSTALL_"))) {
- versionInfo->insert(name + QLatin1String("/raw"), value);
- versionInfo->insert(name + QLatin1String("/get"), value);
+ versionInfo->insert(ProKey(name + QLatin1String("/raw")), value);
+ versionInfo->insert(ProKey(name + QLatin1String("/get")), value);
if (name == QLatin1String("QT_INSTALL_PREFIX")
|| name == QLatin1String("QT_INSTALL_DATA")
|| name == QLatin1String("QT_INSTALL_BINS")) {
name.replace(3, 7, QLatin1String("HOST"));
- versionInfo->insert(name, value);
- versionInfo->insert(name + QLatin1String("/get"), value);
+ versionInfo->insert(ProKey(name), value);
+ versionInfo->insert(ProKey(name + QLatin1String("/get")), value);
}
} else if (name.startsWith(QLatin1String("QT_HOST_"))) {
- versionInfo->insert(name + QLatin1String("/get"), value);
+ versionInfo->insert(ProKey(name + QLatin1String("/get")), value);
}
}
}
@@ -1476,7 +1477,7 @@ bool BaseQtVersion::queryQMakeVariables(const FileName &binary, const Environmen
return true;
}
-FileName BaseQtVersion::mkspecDirectoryFromVersionInfo(const QHash<QString, QString> &versionInfo)
+FileName BaseQtVersion::mkspecDirectoryFromVersionInfo(const QHash<ProKey, ProString> &versionInfo)
{
QString dataDir = qmakeProperty(versionInfo, "QT_HOST_DATA", PropertyVariantSrc);
if (dataDir.isEmpty())
@@ -1484,7 +1485,7 @@ FileName BaseQtVersion::mkspecDirectoryFromVersionInfo(const QHash<QString, QStr
return FileName::fromUserInput(dataDir + QLatin1String("/mkspecs"));
}
-FileName BaseQtVersion::mkspecFromVersionInfo(const QHash<QString, QString> &versionInfo)
+FileName BaseQtVersion::mkspecFromVersionInfo(const QHash<ProKey, ProString> &versionInfo)
{
FileName baseMkspecDir = mkspecDirectoryFromVersionInfo(versionInfo);
if (baseMkspecDir.isEmpty())
@@ -1564,7 +1565,7 @@ FileName BaseQtVersion::mkspecFromVersionInfo(const QHash<QString, QString> &ver
return mkspecFullPath;
}
-FileName BaseQtVersion::sourcePath(const QHash<QString, QString> &versionInfo)
+FileName BaseQtVersion::sourcePath(const QHash<ProKey, ProString> &versionInfo)
{
const QString qt5Source = qmakeProperty(versionInfo, "QT_INSTALL_PREFIX/src");
if (!qt5Source.isEmpty())
diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h
index 34bb4b22e60..1fe09a2ef4c 100644
--- a/src/plugins/qtsupport/baseqtversion.h
+++ b/src/plugins/qtsupport/baseqtversion.h
@@ -48,6 +48,8 @@ class Task;
} // namespace ProjectExplorer
QT_BEGIN_NAMESPACE
+class ProKey;
+class ProString;
class ProFileEvaluator;
class QMakeGlobals;
class QSettings;
@@ -246,14 +248,14 @@ private:
enum Binaries { QmlViewer, QmlScene, Designer, Linguist, Uic, QScxmlc };
QString findQtBinary(Binaries binary) const;
void updateMkspec() const;
- QHash<QString,QString> versionInfo() const;
+ QHash<ProKey, ProString> versionInfo() const;
static bool queryQMakeVariables(const Utils::FileName &binary, const Utils::Environment &env,
- QHash<QString, QString> *versionInfo, QString *error = 0);
- static QString qmakeProperty(const QHash<QString,QString> &versionInfo, const QByteArray &name,
+ QHash<ProKey, ProString> *versionInfo, QString *error = 0);
+ static QString qmakeProperty(const QHash<ProKey, ProString> &versionInfo, const QByteArray &name,
PropertyVariant variant = PropertyVariantGet);
- static Utils::FileName mkspecDirectoryFromVersionInfo(const QHash<QString, QString> &versionInfo);
- static Utils::FileName mkspecFromVersionInfo(const QHash<QString, QString> &versionInfo);
- static Utils::FileName sourcePath(const QHash<QString, QString> &versionInfo);
+ static Utils::FileName mkspecDirectoryFromVersionInfo(const QHash<ProKey,ProString> &versionInfo);
+ static Utils::FileName mkspecFromVersionInfo(const QHash<ProKey,ProString> &versionInfo);
+ static Utils::FileName sourcePath(const QHash<ProKey,ProString> &versionInfo);
void setId(int id); // used by the qtversionmanager for legacy restore
// and by the qtoptionspage to replace Qt versions
@@ -286,7 +288,7 @@ private:
mutable QHash<QString, QString> m_mkspecValues;
- mutable QHash<QString,QString> m_versionInfo;
+ mutable QHash<ProKey, ProString> m_versionInfo;
Utils::FileName m_qmakeCommand;
mutable QString m_qtVersionString;
diff --git a/src/plugins/qtsupport/qtversionfactory.cpp b/src/plugins/qtsupport/qtversionfactory.cpp
index f9b57c05d7a..dc23ea981f6 100644
--- a/src/plugins/qtsupport/qtversionfactory.cpp
+++ b/src/plugins/qtsupport/qtversionfactory.cpp
@@ -47,7 +47,7 @@ QtVersionFactory::~QtVersionFactory()
BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath(const Utils::FileName &qmakePath, bool isAutoDetected, const QString &autoDetectionSource, QString *error)
{
- QHash<QString, QString> versionInfo;
+ QHash<ProKey, ProString> versionInfo;
if (!BaseQtVersion::queryQMakeVariables(qmakePath, Utils::Environment::systemEnvironment(),
&versionInfo, error))
return 0;
diff --git a/src/shared/proparser/qmakeglobals.cpp b/src/shared/proparser/qmakeglobals.cpp
index f3600b33e0e..5aa60c6f77e 100644
--- a/src/shared/proparser/qmakeglobals.cpp
+++ b/src/shared/proparser/qmakeglobals.cpp
@@ -367,13 +367,6 @@ bool QMakeGlobals::initProperties()
}
return true;
}
-#else
-void QMakeGlobals::setProperties(const QHash<QString, QString> &props)
-{
- QHash<QString, QString>::ConstIterator it = props.constBegin(), eit = props.constEnd();
- for (; it != eit; ++it)
- properties.insert(ProKey(it.key()), ProString(it.value()));
-}
#endif
#endif // QT_BUILD_QMAKE
diff --git a/src/shared/proparser/qmakeglobals.h b/src/shared/proparser/qmakeglobals.h
index 9942113681b..82fad78b88d 100644
--- a/src/shared/proparser/qmakeglobals.h
+++ b/src/shared/proparser/qmakeglobals.h
@@ -126,7 +126,6 @@ public:
# ifdef PROEVALUATOR_INIT_PROPS
bool initProperties();
# else
- void setProperties(const QHash<QString, QString> &props);
void setProperties(const QHash<ProKey, ProString> &props) { properties = props; }
# endif
ProString propertyValue(const ProKey &name) const { return properties.value(name); }