diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index 6dc3cb9d800..9da5a188f3b 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -3854,6 +3854,7 @@ void GdbEngine::setupEngine() if (!debuggerSettings()->loadGdbInit.value()) gdbCommand.addArg("-n"); + // This is filled in DebuggerKitAspect::runnable Environment gdbEnv = rp.debugger.environment; gdbEnv.setupEnglishOutput(); if (rp.runAsRoot) @@ -4046,9 +4047,9 @@ void GdbEngine::setEnvironmentVariables() && str.compare("path", Qt::CaseInsensitive) == 0; }; - Environment sysEnv = Environment::systemEnvironment(); + Environment baseEnv = runParameters().debugger.environment; Environment runEnv = runParameters().inferior.environment; - const NameValueItems items = sysEnv.diff(runEnv); + const NameValueItems items = baseEnv.diff(runEnv); for (const EnvironmentItem &item : items) { // imitate the weird windows gdb behavior of setting the case of the path environment // variable name to an all uppercase PATH diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp index 10758d451e0..f867cc8bdd2 100644 --- a/src/plugins/projectexplorer/buildconfiguration.cpp +++ b/src/plugins/projectexplorer/buildconfiguration.cpp @@ -47,6 +47,8 @@ #include #include +#include + #include #include #include @@ -486,8 +488,10 @@ void BuildConfiguration::setBuildDirectorySettingsKey(const QString &key) Environment BuildConfiguration::baseEnvironment() const { Environment result; - if (useSystemEnvironment()) - result = Environment::systemEnvironment(); + if (useSystemEnvironment()) { + ProjectExplorer::IDevice::ConstPtr devicePtr = BuildDeviceKitAspect::device(kit()); + result = devicePtr ? devicePtr->systemEnvironment() : Environment::systemEnvironment(); + } addToEnvironment(result); kit()->addToBuildEnvironment(result); result.modify(project()->additionalEnvironment()); diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 41941b9d208..42f74c77f9f 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -25,6 +25,7 @@ #include "kit.h" +#include "devicesupport/idevice.h" #include "devicesupport/idevicefactory.h" #include "kitinformation.h" #include "kitmanager.h" @@ -575,14 +576,16 @@ void Kit::addToRunEnvironment(Environment &env) const Environment Kit::buildEnvironment() const { - Environment env = Environment::systemEnvironment(); // FIXME: Use build device + IDevice::ConstPtr device = BuildDeviceKitAspect::device(this); + Environment env = device ? device->systemEnvironment() : Environment::systemEnvironment(); addToBuildEnvironment(env); return env; } Environment Kit::runEnvironment() const { - Environment env = Environment::systemEnvironment(); // FIXME: Use run device + IDevice::ConstPtr device = DeviceKitAspect::device(this); + Environment env = device ? device->systemEnvironment() : Environment::systemEnvironment(); addToRunEnvironment(env); return env; }