Maemo: Fix Qemu file path once instead of at every start.

Reviewed-by: kh1
This commit is contained in:
Christian Kandeler
2010-11-30 16:42:30 +01:00
parent 5f5dbc62fd
commit 4041a69404
2 changed files with 19 additions and 20 deletions

View File

@@ -352,12 +352,12 @@ void MaemoQemuManager::startRuntime()
} }
m_runningQtId = version->uniqueId(); m_runningQtId = version->uniqueId();
const QString root
= QDir::toNativeSeparators(MaemoGlobal::maddeRoot(version->qmakeCommand())
+ QLatin1Char('/'));
const MaemoQemuRuntime rt = m_runtimes.value(version->uniqueId()); const MaemoQemuRuntime rt = m_runtimes.value(version->uniqueId());
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
const QString root
= QDir::toNativeSeparators(MaemoGlobal::maddeRoot(version->qmakeCommand())
+ QLatin1Char('/'));
const QLatin1Char colon(';'); const QLatin1Char colon(';');
const QLatin1String key("PATH"); const QLatin1String key("PATH");
env.insert(key, root % QLatin1String("bin") % colon % env.value(key)); env.insert(key, root % QLatin1String("bin") % colon % env.value(key));
@@ -369,22 +369,7 @@ void MaemoQemuManager::startRuntime()
m_qemuProcess->setProcessEnvironment(env); m_qemuProcess->setProcessEnvironment(env);
m_qemuProcess->setWorkingDirectory(rt.m_root); m_qemuProcess->setWorkingDirectory(rt.m_root);
// This is complex because of extreme MADDE weirdness. m_qemuProcess->start(rt.m_bin % QLatin1Char(' ') % rt.m_args);
const bool pathIsRelative = QFileInfo(rt.m_bin).isRelative();
const QString app =
#ifdef Q_OS_WIN
root % (pathIsRelative
? QLatin1String("madlib/") % rt.m_bin // Fremantle.
: rt.m_bin) // Haramattan.
% QLatin1String(".exe");
#else
pathIsRelative
? root % QLatin1String("madlib/") % rt.m_bin // Fremantle.
: rt.m_bin; // Haramattan.
#endif
m_qemuProcess->start(app % QLatin1Char(' ') % rt.m_args,
QIODevice::ReadWrite);
if (!m_qemuProcess->waitForStarted()) if (!m_qemuProcess->waitForStarted())
return; return;

View File

@@ -192,7 +192,21 @@ void MaemoQemuRuntimeParserV1::fillRuntimeInformation(MaemoQemuRuntime *runtime)
break; break;
runtime->m_freePorts.addPort(port.toInt()); runtime->m_freePorts.addPort(port.toInt());
} }
return;
// This is complex because of extreme MADDE weirdness.
const QString root = m_maddeRoot + QLatin1Char('/');
const bool pathIsRelative = QFileInfo(runtime->m_bin).isRelative();
runtime->m_bin =
#ifdef Q_OS_WIN
root + (pathIsRelative
? QLatin1String("madlib/") + runtime->m_bin // Fremantle.
: runtime->m_bin) // Harmattan.
+ QLatin1String(".exe");
#else
pathIsRelative
? root + QLatin1String("madlib/") + runtime->m_bin // Fremantle.
: runtime->m_bin; // Harmattan.
#endif
} }
} }
} }