winrtrunner: Pass the relative executable as part of ImageParams
authorAndrew Knight <andrew.knight@digia.com>
Tue, 1 Apr 2014 08:39:07 +0000 (11:39 +0300)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 1 Apr 2014 08:48:26 +0000 (10:48 +0200)
This is required in order for a proper argv[0] to be available when
ImageParams is used.

Change-Id: I3b3151303d5ff764113a000f1a02c94e7b4e5db9
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
src/winrtrunner/xapengine.cpp

index dfd4e9d..c4149e1 100644 (file)
@@ -94,6 +94,7 @@ public:
     QString genre;
     QString productId;
     QString executable;
+    QString relativeExecutable;
     QStringList icons;
     qint64 pid;
     DWORD exitCode;
@@ -198,7 +199,8 @@ XapEngine::XapEngine(Runner *runner)
         qCWarning(lcWinRtRunner) << "Unable to determine executable in manifest: " << d->manifest;
         return;
     }
-    d->executable = QFileInfo(d->manifest).absoluteDir().absoluteFilePath(executablePattern.cap(1));
+    d->relativeExecutable = executablePattern.cap(1);
+    d->executable = QFileInfo(d->manifest).absoluteDir().absoluteFilePath(d->relativeExecutable);
 
     // Icons
     QRegExp iconPattern(QStringLiteral("[\\\\/a-zA-Z0-9_\\-\\!]*\\.(png|jpg|jpeg)"));
@@ -426,7 +428,8 @@ bool XapEngine::install(bool removeFirst)
             continue;
 
         if (QFileInfo(i.key()) == QFileInfo(d->manifest)) {
-            const QStringList args = d->runner->arguments() << QStringLiteral("-qdevel");
+            const QStringList args = QStringList(d->relativeExecutable)
+                    << d->runner->arguments() << QStringLiteral("-qdevel");
             QByteArray manifestWithArgs = file.readAll();
             manifestWithArgs.replace(QByteArrayLiteral("ImageParams=\"\""),
                                      QByteArrayLiteral("ImageParams=\"")