diff options
author | hjk <hjk@qt.io> | 2019-08-30 12:00:57 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2019-09-24 11:20:51 +0000 |
commit | bcaeb73e68b1880848252c634626c57bd6f18221 (patch) | |
tree | 26e787ddc7084d97c94470ad133b08223353223b | |
parent | bef986f3fde6a591734c7b2eedc76a036d854bde (diff) |
ProjectExplorer: Store parts of active build config in runcontrol
... on runcontrol creation to prevent later access. Adapt some users.
There are more to come.
Change-Id: I2a3fe5eea0ada4eff7d08b79a6f49694e6962c8a
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r-- | src/plugins/android/androiddebugsupport.cpp | 5 | ||||
-rw-r--r-- | src/plugins/clangtools/clangtoolruncontrol.cpp | 6 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runcontrol.cpp | 24 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runcontrol.h | 4 | ||||
-rw-r--r-- | src/plugins/winrt/winrtrunnerhelper.cpp | 5 | ||||
-rw-r--r-- | src/plugins/winrt/winrtrunnerhelper.h | 1 |
6 files changed, 32 insertions, 13 deletions
diff --git a/src/plugins/android/androiddebugsupport.cpp b/src/plugins/android/androiddebugsupport.cpp index 0481df89b23..dce03b052cb 100644 --- a/src/plugins/android/androiddebugsupport.cpp +++ b/src/plugins/android/androiddebugsupport.cpp @@ -35,7 +35,6 @@ #include <debugger/debuggerrunconfigurationaspect.h> #include <debugger/debuggerruncontrol.h> -#include <projectexplorer/buildconfiguration.h> #include <projectexplorer/project.h> #include <projectexplorer/projectnodes.h> #include <projectexplorer/target.h> @@ -139,11 +138,11 @@ void AndroidDebugSupport::start() if (qtVersion) solibSearchPath.append(qtVersion->qtSoPaths()); solibSearchPath.append(uniquePaths(extraLibs)); - solibSearchPath.append(target->activeBuildConfiguration()->buildDirectory().toString()); + solibSearchPath.append(runControl()->buildDirectory().toString()); solibSearchPath.removeDuplicates(); setSolibSearchPath(solibSearchPath); qCDebug(androidDebugSupportLog) << "SoLibSearchPath: "<<solibSearchPath; - setSymbolFile(target->activeBuildConfiguration()->buildDirectory().pathAppended("app_process")); + setSymbolFile(runControl()->buildDirectory().pathAppended("app_process")); setSkipExecutableValidation(true); setUseExtendedRemote(true); QString devicePreferredAbi = AndroidManager::devicePreferredAbi(target); diff --git a/src/plugins/clangtools/clangtoolruncontrol.cpp b/src/plugins/clangtools/clangtoolruncontrol.cpp index da8e9f053cb..dc22e7a39b6 100644 --- a/src/plugins/clangtools/clangtoolruncontrol.cpp +++ b/src/plugins/clangtools/clangtoolruncontrol.cpp @@ -136,11 +136,7 @@ private: Target *target = runControl()->target(); QTC_ASSERT(target, reportFailure(); return); - BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown; - if (const BuildConfiguration *buildConfig = target->activeBuildConfiguration()) - buildType = buildConfig->buildType(); - - if (buildType == BuildConfiguration::Release) { + if (runControl()->buildType() == BuildConfiguration::Release) { const QString wrongMode = ClangToolRunWorker::tr("Release"); const QString toolName = tool()->name(); const QString title = ClangToolRunWorker::tr("Run %1 in %2 Mode?").arg(toolName, wrongMode); diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index 4d32362fd07..b4a50d0099b 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -328,6 +328,9 @@ public: QMap<Core::Id, QVariantMap> settingsData; Core::Id runConfigId; BuildTargetInfo buildTargetInfo; + BuildConfiguration::BuildType buildType = BuildConfiguration::Unknown; + FilePath buildDirectory; + Environment buildEnvironment; Kit *kit = nullptr; // Not owned. QPointer<Target> target; // Not owned. QPointer<Project> project; // Not owned. @@ -376,6 +379,12 @@ void RunControl::setTarget(Target *target) if (!d->buildKey.isEmpty()) d->buildTargetInfo = target->buildTarget(d->buildKey); + if (auto bc = target->activeBuildConfiguration()) { + d->buildType = bc->buildType(); + d->buildDirectory = bc->buildDirectory(); + d->buildEnvironment = bc->environment(); + } + delete d->outputFormatter; d->outputFormatter = OutputFormatterFactory::createFormatter(target); if (!d->outputFormatter) @@ -907,6 +916,21 @@ QString RunControl::buildKey() const return d->buildKey; } +BuildConfiguration::BuildType RunControl::buildType() const +{ + return d->buildType; +} + +FilePath RunControl::buildDirectory() const +{ + return d->buildDirectory; +} + +Environment RunControl::buildEnvironment() const +{ + return d->buildEnvironment; +} + FilePath RunControl::targetFilePath() const { return d->buildTargetInfo.targetFilePath; diff --git a/src/plugins/projectexplorer/runcontrol.h b/src/plugins/projectexplorer/runcontrol.h index a9f55c1a243..1ad3e26b273 100644 --- a/src/plugins/projectexplorer/runcontrol.h +++ b/src/plugins/projectexplorer/runcontrol.h @@ -26,6 +26,7 @@ #pragma once #include "applicationlauncher.h" +#include "buildconfiguration.h" #include "devicesupport/idevice.h" #include "projectexplorerconstants.h" #include "runconfiguration.h" @@ -228,6 +229,9 @@ public: } QString buildKey() const; + BuildConfiguration::BuildType buildType() const; + Utils::FilePath buildDirectory() const; + Utils::Environment buildEnvironment() const; QVariantMap settingsData(Core::Id id) const; diff --git a/src/plugins/winrt/winrtrunnerhelper.cpp b/src/plugins/winrt/winrtrunnerhelper.cpp index 69d718e5757..139929d44b1 100644 --- a/src/plugins/winrt/winrtrunnerhelper.cpp +++ b/src/plugins/winrt/winrtrunnerhelper.cpp @@ -98,9 +98,6 @@ WinRtRunnerHelper::WinRtRunnerHelper(ProjectExplorer::RunWorker *runWorker, QStr m_loopbackArguments = QStringList{"--loopbackexempt", "client"}; else if (loopbackExemptServer) m_loopbackArguments = QStringList{"--loopbackexempt", "server"}; - - if (BuildConfiguration *bc = runControl->target()->activeBuildConfiguration()) - m_environment = bc->environment(); } void WinRtRunnerHelper::appendMessage(const QString &message, Utils::OutputFormat format) @@ -224,7 +221,7 @@ void WinRtRunnerHelper::startWinRtRunner(const RunConf &conf) process->setUseCtrlCStub(true); process->setCommand(cmdLine); - process->setEnvironment(m_environment); + process->setEnvironment(m_worker->runControl()->buildEnvironment()); process->setWorkingDirectory(QFileInfo(m_executableFilePath).absolutePath()); process->start(); } diff --git a/src/plugins/winrt/winrtrunnerhelper.h b/src/plugins/winrt/winrtrunnerhelper.h index 785946e9853..5bbf7d4ddb8 100644 --- a/src/plugins/winrt/winrtrunnerhelper.h +++ b/src/plugins/winrt/winrtrunnerhelper.h @@ -71,7 +71,6 @@ private: ProjectExplorer::RunWorker *m_worker = nullptr; WinRtDevice::ConstPtr m_device; - Utils::Environment m_environment; QString m_runnerFilePath; QString m_executableFilePath; QString m_debuggerExecutable; |