diff --git a/src/libs/utils/processinterface.h b/src/libs/utils/processinterface.h index 2e02c160d15..3b5e360e455 100644 --- a/src/libs/utils/processinterface.h +++ b/src/libs/utils/processinterface.h @@ -45,6 +45,7 @@ public: CommandLine m_commandLine; FilePath m_workingDirectory; Environment m_environment; + Environment m_remoteEnvironment; QByteArray m_writeData; QProcess::ProcessChannelMode m_processChannelMode = QProcess::SeparateChannels; QVariantHash m_extraData; diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp index a83b9003ec2..91fa2f84b85 100644 --- a/src/libs/utils/qtcprocess.cpp +++ b/src/libs/utils/qtcprocess.cpp @@ -772,6 +772,16 @@ bool QtcProcess::hasEnvironment() const return d->m_setup.m_haveEnv; } +void QtcProcess::setRemoteEnvironment(const Environment &environment) +{ + d->m_setup.m_remoteEnvironment = environment; +} + +Environment QtcProcess::remoteEnvironment() const +{ + return d->m_setup.m_remoteEnvironment; +} + void QtcProcess::setCommand(const CommandLine &cmdLine) { if (d->m_setup.m_workingDirectory.needsDevice() && cmdLine.executable().needsDevice()) { diff --git a/src/libs/utils/qtcprocess.h b/src/libs/utils/qtcprocess.h index d666a5f3e77..01eb37951a8 100644 --- a/src/libs/utils/qtcprocess.h +++ b/src/libs/utils/qtcprocess.h @@ -102,6 +102,9 @@ public: const Environment &environment() const; bool hasEnvironment() const; + void setRemoteEnvironment(const Environment &env); + Environment remoteEnvironment() const; + void setCommand(const CommandLine &cmdLine); const CommandLine &commandLine() const; diff --git a/src/plugins/projectexplorer/applicationlauncher.cpp b/src/plugins/projectexplorer/applicationlauncher.cpp index 8066955d90e..2aacfd09809 100644 --- a/src/plugins/projectexplorer/applicationlauncher.cpp +++ b/src/plugins/projectexplorer/applicationlauncher.cpp @@ -408,7 +408,7 @@ void ApplicationLauncherPrivate::start(const IDevice::ConstPtr &device, bool loc this, &ApplicationLauncherPrivate::handleApplicationFinished); m_process->setCommand(m_runnable.command); m_process->setWorkingDirectory(m_runnable.workingDirectory); - m_process->setEnvironment(m_runnable.environment); + m_process->setRemoteEnvironment(m_runnable.environment); m_process->setExtraData(m_runnable.extraData); } diff --git a/src/plugins/qnx/qnxdeviceprocess.cpp b/src/plugins/qnx/qnxdeviceprocess.cpp index c04b9dd6d74..3236ba62d24 100644 --- a/src/plugins/qnx/qnxdeviceprocess.cpp +++ b/src/plugins/qnx/qnxdeviceprocess.cpp @@ -59,7 +59,7 @@ QString QnxDeviceProcess::fullCommandLine() const fullCommandLine += QString::fromLatin1("cd %1 ; ").arg( ProcessArgs::quoteArg(workingDirectory().toString())); - const Environment env = environment(); + const Environment env = remoteEnvironment(); for (auto it = env.constBegin(); it != env.constEnd(); ++it) { fullCommandLine += QString::fromLatin1("%1='%2' ") .arg(env.key(it)).arg(env.expandedValueForKey(env.key(it))); diff --git a/src/plugins/remotelinux/linuxdeviceprocess.cpp b/src/plugins/remotelinux/linuxdeviceprocess.cpp index eb2e0742a47..f3da62a53a9 100644 --- a/src/plugins/remotelinux/linuxdeviceprocess.cpp +++ b/src/plugins/remotelinux/linuxdeviceprocess.cpp @@ -99,7 +99,7 @@ QString LinuxDeviceProcess::fullCommandLine() const if (!usesTerminal()) cmd.addArgs(QString("echo ") + pidMarker + "$$" + pidMarker + " && ", CommandLine::Raw); - const Environment &env = environment(); + const Environment &env = remoteEnvironment(); for (auto it = env.constBegin(); it != env.constEnd(); ++it) cmd.addArgs(env.key(it) + "='" + env.expandedValueForKey(env.key(it)) + '\'', CommandLine::Raw);