diff --git a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp index b08172cac64af6a3900a3232b1cc0bd9d0288a28..5ad000b2a0e8279c6fb90d8f3a09c251ea8adea2 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/qemuruntimemanager.cpp @@ -359,13 +359,19 @@ void QemuRuntimeManager::startRuntime() m_qemuProcess->setProcessEnvironment(env); m_qemuProcess->setWorkingDirectory(rt.m_root); - const QString app = root + (QFileInfo(rt.m_bin).isRelative() + // This is complex because of extreme MADDE weirdness. + 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. -#ifdef Q_OS_WIN - % QLatin1String(".exe") + % QLatin1String(".exe"); +#else + pathIsRelative + ? root % QLatin1String("madlib/") % rt.m_bin // Fremantle. + : rt.m_bin; // Haramattan. #endif - ; // keep m_qemuProcess->start(app % QLatin1Char(' ') % rt.m_args, QIODevice::ReadWrite); @@ -512,12 +518,18 @@ bool QemuRuntimeManager::targetUsesRuntimeConfig(Target *target) MaemoRunConfiguration *mrc = qobject_cast<MaemoRunConfiguration *> (target->activeRunConfiguration()); - if (mrc) { - const MaemoDeviceConfig &config = mrc->deviceConfig(); - if (config.isValid() && config.type == MaemoDeviceConfig::Simulator) - return true; - } - return false; + if (!mrc) + return false; + Qt4BuildConfiguration *bc + = qobject_cast<Qt4BuildConfiguration *>(target->activeBuildConfiguration()); + if (!bc) + return false; + QtVersion *version = bc->qtVersion(); + if (!version || !m_runtimes.contains(version->uniqueId())) + return false; + + const MaemoDeviceConfig &config = mrc->deviceConfig(); + return config.isValid() && config.type == MaemoDeviceConfig::Simulator; } QString QemuRuntimeManager::maddeRoot(const QString &qmake) const