From 4a16cb9c38a63dd837bf40de77e170de83b3a2ba Mon Sep 17 00:00:00 2001
From: kh1 <qt-info@nokia.com>
Date: Thu, 29 Jul 2010 14:42:04 +0200
Subject: [PATCH] Final step to be able to set remote environment.

Task-number: QTCREATORBUG-1663
Reviewed-by: ck
---
 src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp   | 9 +++++++++
 src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h     | 2 ++
 .../qt4projectmanager/qt-maemo/maemoruncontrol.cpp       | 6 ++++--
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
index fcacff25858..f3ff1273279 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp
@@ -52,5 +52,14 @@ QString MaemoGlobal::remoteCommandPrefix(const QString &commandFilePath)
         .arg(remoteSudo()).arg(commandFilePath);
 }
 
+QString MaemoGlobal::remoteEnvironment(const QList<ProjectExplorer::EnvironmentItem> &list)
+{
+    QString env;
+    QString placeHolder = QLatin1String("%1=%2 ");
+    foreach (const ProjectExplorer::EnvironmentItem &item, list)
+        env.append(placeHolder.arg(item.name).arg(item.value));
+    return env.mid(0, env.size() - 1);
+}
+
 } // namespace Internal
 } // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
index ad8f5c6f0f5..c8f9225b518 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h
@@ -31,6 +31,7 @@
 #define MAEMOGLOBAL_H
 
 #include <projectexplorer/buildconfiguration.h>
+#include <projectexplorer/environment.h>
 
 #include <QtCore/QList>
 
@@ -47,6 +48,7 @@ public:
     static QString homeDirOnDevice(const QString &uname);
     static QString remoteSudo();
     static QString remoteCommandPrefix(const QString &commandFilePath);
+    static QString remoteEnvironment(const QList<ProjectExplorer::EnvironmentItem> &list);
 
     template<class T> static T *buildStep(const ProjectExplorer::BuildConfiguration *bc)
     {
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
index 515e2230414..df08195fc25 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp
@@ -113,8 +113,10 @@ void MaemoRunControl::startExecution()
 {
     emit appendMessage(this, tr("Starting remote process ..."), false);
     const QString &remoteExe = m_runConfig->remoteExecutableFilePath();
-    m_runner->startExecution(QString::fromLocal8Bit("%1 %2 %3")
-        .arg(MaemoGlobal::remoteCommandPrefix(remoteExe)).arg(remoteExe)
+    m_runner->startExecution(QString::fromLocal8Bit("%1 %2 %3 %4")
+        .arg(MaemoGlobal::remoteCommandPrefix(remoteExe))
+        .arg(MaemoGlobal::remoteEnvironment(m_runConfig->userEnvironmentChanges()))
+        .arg(remoteExe)
         .arg(m_runConfig->arguments().join(QLatin1String(" "))).toUtf8());
 }
 
-- 
GitLab