From 6871f31b4ec6567a383ea152d887919bb0100563 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 11 Jan 2017 14:19:02 +0100 Subject: [PATCH] QtSupport: Pass kit to QmlDumpTool::pathAndEnvironment Pass the complete kit to QmlDumpTool::pathAndEnvironment instead of just the Qt Version. That removes the need to guess at the toolchain used and makes sure we have a better environment set up. This also removes the need for BaseQtVersion::qmlToolsEnvironment() which played the toolchain guessing game. Change-Id: I4f4b9bb14b3ceb3892652901b459b53fcc4cb1ac Reviewed-by: Tim Jenssen --- src/plugins/qmljstools/qmljsmodelmanager.cpp | 2 +- src/plugins/qtsupport/baseqtversion.cpp | 18 ------------------ src/plugins/qtsupport/baseqtversion.h | 1 - src/plugins/qtsupport/qmldumptool.cpp | 13 +++++++++---- src/plugins/qtsupport/qmldumptool.h | 7 ++++--- 5 files changed, 14 insertions(+), 27 deletions(-) diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index 1fdf60b8087..1858c286313 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -118,7 +118,7 @@ ModelManagerInterface::ProjectInfo ModelManager::defaultProjectInfoForProject( } if (projectInfo.tryQmlDump) { - QtSupport::QmlDumpTool::pathAndEnvironment(qtVersion, + QtSupport::QmlDumpTool::pathAndEnvironment(activeKit, preferDebugDump, &projectInfo.qmlDumpPath, &projectInfo.qmlDumpEnvironment); projectInfo.qmlDumpHasRelocatableFlag = qtVersion->hasQmlDumpWithRelocatableFlag(); diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index b3035b93f16..da70f32bbbd 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -1302,24 +1302,6 @@ bool BaseQtVersion::needsQmlDump() const return qtVersion() < QtVersionNumber(4, 8, 0); } -Environment BaseQtVersion::qmlToolsEnvironment() const -{ - // FIXME: This seems broken! - Environment environment = Environment::systemEnvironment(); -#if 0 // FIXME: Fix this! - addToEnvironment(environment); -#endif - - // add preferred tool chain, as that is how the tools are built, compare QtVersion::buildDebuggingHelperLibrary - if (!qtAbis().isEmpty()) { - QList alltc = ToolChainManager::findToolChains(qtAbis().at(0)); - if (!alltc.isEmpty()) - alltc.first()->addToEnvironment(environment); - } - - return environment; -} - QString BaseQtVersion::qmlDumpTool(bool debugVersion) const { const QString qtInstallBins = qmakeProperty("QT_INSTALL_BINS"); diff --git a/src/plugins/qtsupport/baseqtversion.h b/src/plugins/qtsupport/baseqtversion.h index c50497601d8..603d1f88d6c 100644 --- a/src/plugins/qtsupport/baseqtversion.h +++ b/src/plugins/qtsupport/baseqtversion.h @@ -194,7 +194,6 @@ public: virtual bool hasQmlDump() const; virtual bool hasQmlDumpWithRelocatableFlag() const; virtual bool needsQmlDump() const; - Utils::Environment qmlToolsEnvironment() const; virtual QtConfigWidget *createConfigurationWidget() const; diff --git a/src/plugins/qtsupport/qmldumptool.cpp b/src/plugins/qtsupport/qmldumptool.cpp index 4f356799427..78f8490ab6b 100644 --- a/src/plugins/qtsupport/qmldumptool.cpp +++ b/src/plugins/qtsupport/qmldumptool.cpp @@ -24,6 +24,7 @@ ****************************************************************************/ #include "qmldumptool.h" +#include "qtkitinformation.h" #include "qtsupportconstants.h" #include "qtversionmanager.h" @@ -55,7 +56,7 @@ static inline QStringList validPrebuiltFilenames(bool debugBuild) return list; } -QString QmlDumpTool::toolForVersion(BaseQtVersion *version, bool debugDump) +QString QmlDumpTool::toolForVersion(const BaseQtVersion *version, bool debugDump) { if (version) { const QString qtInstallBins = version->qmakeProperty("QT_INSTALL_BINS"); @@ -79,9 +80,13 @@ QString QmlDumpTool::toolForQtPaths(const QString &qtInstallBins, return QString(); } -void QmlDumpTool::pathAndEnvironment(BaseQtVersion *version, - bool preferDebug, QString *dumperPath, Utils::Environment *env) +void QmlDumpTool::pathAndEnvironment(const ProjectExplorer::Kit *k, bool preferDebug, + QString *dumperPath, Utils::Environment *env) { + if (!k) + return; + + const BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k); if (version && !version->hasQmlDump()) return; @@ -104,7 +109,7 @@ void QmlDumpTool::pathAndEnvironment(BaseQtVersion *version, if (!path.isEmpty() && version && dumperPath && env) { *dumperPath = path; - *env = version->qmlToolsEnvironment(); + k->addToEnvironment(*env); } } diff --git a/src/plugins/qtsupport/qmldumptool.h b/src/plugins/qtsupport/qmldumptool.h index a3568475ccd..a22c2697763 100644 --- a/src/plugins/qtsupport/qmldumptool.h +++ b/src/plugins/qtsupport/qmldumptool.h @@ -29,6 +29,7 @@ #include +namespace ProjectExplorer { class Kit; } namespace Utils { class Environment; } namespace ProjectExplorer { @@ -42,12 +43,12 @@ class BaseQtVersion; class QTSUPPORT_EXPORT QmlDumpTool : public Utils::BuildableHelperLibrary { public: - static QString toolForVersion(BaseQtVersion *version, bool debugDump); + static QString toolForVersion(const BaseQtVersion *version, bool debugDump); static QString toolForQtPaths(const QString &qtInstallBins, bool debugDump); - static void pathAndEnvironment(BaseQtVersion *version, - bool preferDebug, QString *path, Utils::Environment *env); + static void pathAndEnvironment(const ProjectExplorer::Kit *k, bool preferDebug, + QString *path, Utils::Environment *env); }; } // namespace