From a5cd901747712f9d52373929349fe4335a21c6bf Mon Sep 17 00:00:00 2001
From: kh1 <qt-info@nokia.com>
Date: Fri, 9 Apr 2010 18:24:43 +0200
Subject: [PATCH] Debian packaging does now work on windows.

---
 .../qt-maemo/maemopackagecreationstep.cpp     | 38 +++++++++++--------
 1 file changed, 22 insertions(+), 16 deletions(-)

diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
index e33a30b2a17..1c029be179c 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
@@ -41,7 +41,9 @@
 
 #include "maemopackagecreationstep.h"
 
+#include "maemoconstants.h"
 #include "maemotoolchain.h"
+
 #include <qt4buildconfiguration.h>
 #include <qt4project.h>
 #include <qt4target.h>
@@ -115,11 +117,11 @@ bool MaemoPackageCreationStep::createPackage()
     const QString &path = QDir::toNativeSeparators(maddeRoot() + QLatin1Char('/'));
 
     const QLatin1String key("PATH");
+    QString colon = QLatin1String(":");
 #ifdef Q_OS_WIN
-    const QLatin1String colon(";");
-    env.insert(key, path % QLatin1String("bin")  % colon % env.value(key));
-#elif defined(Q_OS_UNIX)
-    const QLatin1String colon(":");
+    colon = QLatin1String(";");
+    env.insert(key, targetRoot() % "/bin" % colon % env.value(key));
+    env.insert(key, path % QLatin1String("bin") % colon % env.value(key));
 #endif
     env.insert(key, path % QLatin1String("madbin") % colon % env.value(key));
     env.insert(QLatin1String("PERL5LIB"), path % QLatin1String("madlib/perl5"));
@@ -135,7 +137,7 @@ bool MaemoPackageCreationStep::createPackage()
             env.insert(envPattern.cap(1), envPattern.cap(2));
     } while (!line.isEmpty());
     
-    qDebug("Process environment: %s", qPrintable(env.toStringList().join(colon)));
+    qDebug("Process environment: %s", qPrintable(env.toStringList().join("\n")));
     qDebug("sysroot: '%s'", qPrintable(env.value(QLatin1String("SYSROOT_DIR"))));
     
     QProcess buildProc;
@@ -144,7 +146,7 @@ bool MaemoPackageCreationStep::createPackage()
 
     if (!QFileInfo(projectDir + QLatin1String("/debian")).exists()) {
         const QString command = QLatin1String("dh_make -s -n -p ")
-                                % executableFileName() % QLatin1String("_0.1");
+            % executableFileName() % QLatin1String("_0.1");
         if (!runCommand(buildProc, command))
             return false;
         QFile rulesFile(projectDir + QLatin1String("/debian/rules"));
@@ -165,9 +167,10 @@ bool MaemoPackageCreationStep::createPackage()
 
     if (!runCommand(buildProc, QLatin1String("dh_installdirs")))
         return false;
+    
     const QString targetFile(projectDir % QLatin1String("/debian/")
-                             % executableFileName().toLower() % QLatin1String("/usr/bin/")
-                             % executableFileName());
+        % executableFileName().toLower() % QLatin1String("/usr/bin/")
+        % executableFileName());
     if (QFile::exists(targetFile)) {
         if (!QFile::remove(targetFile)) {
             qDebug("Error: Could not remove '%s'", qPrintable(targetFile));
@@ -192,24 +195,27 @@ bool MaemoPackageCreationStep::createPackage()
     return true;
 }
 
-bool MaemoPackageCreationStep::runCommand(QProcess &proc,
-                                          const QString &command)
+bool MaemoPackageCreationStep::runCommand(QProcess &proc, const QString &command)
 {
     qDebug("Running command '%s'", qPrintable(command));
-    proc.start(maddeRoot() % QLatin1String("/madbin/") % command);
+    QString perl;
+#ifdef Q_OS_WIN
+    perl = maddeRoot() + QLatin1String("/bin/perl.exe ");
+#endif
+    proc.start(perl + maddeRoot() % QLatin1String("/madbin/") % command);
     proc.write("\n"); // For dh_make
-    if (!proc.waitForFinished(10000) && proc.error() == QProcess::Timedout) {
+    if (!proc.waitForFinished(100000) && proc.error() == QProcess::Timedout) {
         qDebug("command '%s' hangs", qPrintable(command));
         return false;
     }
     if (proc.exitCode() != 0) {
         qDebug("command '%s' failed with return value %d and output '%s'",
-               qPrintable(command),  proc.exitCode(),
-               (proc.readAllStandardOutput() + "\n" + proc.readAllStandardError()).data());
+            qPrintable(command),  proc.exitCode(), (proc.readAllStandardOutput()
+            + "\n" + proc.readAllStandardError()).data());
         return false;
     }
-    qDebug("Command finished, output was '%s'",
-           (proc.readAllStandardOutput() + "\n" + proc.readAllStandardError()).data());
+    qDebug("Command finished, output was '%s'", (proc.readAllStandardOutput()
+        + "\n" + proc.readAllStandardError()).data());
     return true;
 }
 
-- 
GitLab