From a699a0c92e88d035f5a5acb6b1e2bfd1d5a7d763 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 27 Aug 2019 15:56:25 +0200 Subject: [PATCH] Project: Improve activeParseEnvironment Not all Projects have build configurations. Handle those better. Change-Id: I72e63798f034a2a497978a2844c4158dfd09ef0f Reviewed-by: hjk --- src/plugins/projectexplorer/project.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/plugins/projectexplorer/project.cpp b/src/plugins/projectexplorer/project.cpp index 3b34031eecb..d881c80ce06 100644 --- a/src/plugins/projectexplorer/project.cpp +++ b/src/plugins/projectexplorer/project.cpp @@ -25,16 +25,18 @@ #include "project.h" -#include "buildinfo.h" #include "buildconfiguration.h" +#include "buildinfo.h" #include "deployconfiguration.h" #include "editorconfiguration.h" #include "kit.h" #include "makestep.h" #include "projectexplorer.h" #include "projectnodes.h" -#include "target.h" +#include "runconfiguration.h" +#include "runcontrol.h" #include "session.h" +#include "target.h" #include "userfileaccessor.h" #include @@ -862,10 +864,19 @@ Task Project::createProjectTask(Task::TaskType type, const QString &description) Utils::Environment Project::activeParseEnvironment() const { - const BuildConfiguration * const buildConfiguration = activeTarget() - ? activeTarget()->activeBuildConfiguration() : nullptr; - return buildConfiguration ? buildConfiguration->environment() - : Utils::Environment::systemEnvironment(); + const Target *const t = activeTarget(); + const BuildConfiguration *const bc = t ? t->activeBuildConfiguration() : nullptr; + if (bc) + return bc->environment(); + + const RunConfiguration *const rc = t ? t->activeRunConfiguration() : nullptr; + if (rc) + return rc->runnable().environment; + + Utils::Environment result = Utils::Environment::systemEnvironment(); + if (t) + t->kit()->addToEnvironment(result); + return result; } Core::Context Project::projectContext() const