diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp index 7e89de5a77f21a84d57942e87260615d9ec0eb56..b6fbf0edcbc903812aec721fea3ac7378f24debc 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.cpp @@ -29,8 +29,12 @@ #include "maemoglobal.h" +#include <utils/environment.h> + #include <QtCore/QCoreApplication> +#include <QtGui/QDesktopServices> #include <QtCore/QDir> +#include <QtCore/QProcess> #include <QtCore/QString> #define TR(text) QCoreApplication::translate("Qt4ProjectManager::Internal::MaemoGlobal", text) @@ -104,5 +108,24 @@ bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error) return true; } +void MaemoGlobal::callMaddeShellScript(QProcess &proc, const QString &maddeRoot, + const QString &command, const QStringList &args) +{ + QString actualCommand = command; + QStringList actualArgs = args; +#ifdef Q_OS_WIN + Utils::Environment env(proc.environment()); + env.prependOrSetPath(maddeRoot + QLatin1String("/bin")); + env.prependOrSet(QLatin1String("HOME"), + QDesktopServices::storageLocation(QDesktopServices::HomeLocation)); + proc.setEnvironment(env.toStringList()); + actualArgs.prepend(command); + actualCommand = maddeRoot + QLatin1String("/bin/sh.exe"); +#else + Q_UNUSED(maddeRoot); +#endif + proc.start(actualCommand, actualArgs); +} + } // namespace Internal } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h index d20bff056223666626e5a5d322c646cd9e7394ed..24f8cd2cf3194985fc6a7aab3a3863d4078a9c01 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoglobal.h @@ -42,6 +42,7 @@ MaemoGlobal::assertState<State>(expected, actual, Q_FUNC_INFO) QT_BEGIN_NAMESPACE +class QProcess; class QString; QT_END_NAMESPACE @@ -58,6 +59,8 @@ public: static QString remoteSourceProfilesCommand(); static bool removeRecursively(const QString &filePath, QString &error); + static void callMaddeShellScript(QProcess &proc, const QString &maddeRoot, + const QString &command, const QStringList &args); template<class T> static T *buildStep(const ProjectExplorer::DeployConfiguration *dc) { diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp index af03ca469bb54acf5b50ed726481391ef6728234..e17ed23a0dda485c26b66b3b8d89a0eef2150b16 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemomanager.cpp @@ -32,6 +32,7 @@ #include "maemoconstants.h" #include "maemodeploystepfactory.h" #include "maemodeviceconfigurations.h" +#include "maemoglobal.h" #include "maemopackagecreationfactory.h" #include "maemopublishingwizardfactories.h" #include "maemoqemumanager.h" @@ -106,25 +107,14 @@ bool MaemoManager::isValidMaemoQtVersion(const QtVersion *version) const QDir dir(path); const QByteArray target = dir.dirName().toAscii(); dir.cdUp(); dir.cdUp(); - QString madAdminCommand(dir.absolutePath() + QLatin1String("/bin/mad-admin")); + const QString madAdminCommand(dir.absolutePath() + QLatin1String("/bin/mad-admin")); if (!QFileInfo(madAdminCommand).exists()) return false; QProcess madAdminProc; - QStringList arguments(QLatin1String("list")); - -#ifdef Q_OS_WIN - QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - env.insert(QLatin1String("PATH"), - QDir::toNativeSeparators(dir.absolutePath() % QLatin1String("/bin")) - % QLatin1Char(';') % env.value(QLatin1String("PATH"))); - madAdminProc.setProcessEnvironment(env); - - arguments.prepend(madAdminCommand); - madAdminCommand = dir.absolutePath() + QLatin1String("/bin/sh.exe"); -#endif - - madAdminProc.start(madAdminCommand, arguments); + const QStringList arguments(QLatin1String("list")); + MaemoGlobal::callMaddeShellScript(madAdminProc, dir.absolutePath(), + madAdminCommand, arguments); if (!madAdminProc.waitForStarted() || !madAdminProc.waitForFinished()) return false; diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopublisherfremantlefree.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopublisherfremantlefree.cpp index b127650edf8ad5e9015aa90da1b3596b612817e9..1e1e534317e4b31a3872f3032266235b2171c13e 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopublisherfremantlefree.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopublisherfremantlefree.cpp @@ -315,16 +315,11 @@ void MaemoPublisherFremantleFree::runDpkgBuildPackage() emit progressReport(tr("Building source package...")); const MaemoToolChain * const tc = dynamic_cast<MaemoToolChain *>(m_buildConfig->toolChain()); - QStringList args = QStringList() << QLatin1String("-t") + const QStringList args = QStringList() << QLatin1String("-t") << tc->targetName() << QLatin1String("dpkg-buildpackage") << QLatin1String("-S") << QLatin1String("-us") << QLatin1String("-uc"); - QString madCommand = tc->maddeRoot() + QLatin1String("/bin/mad"); - -#ifdef Q_OS_WIN - args.prepend(madCommand); - madCommand = tc->maddeRoot() + QLatin1String("/bin/sh.exe"); -#endif - m_process->start(madCommand, args); + const QString madCommand = tc->maddeRoot() + QLatin1String("/bin/mad"); + MaemoGlobal::callMaddeShellScript(*m_process, tc->maddeRoot(), madCommand, args); } // We have to implement the SCP protocol, because the maemo.org diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemoqemumanager.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemoqemumanager.cpp index bb3f7e8735d37d41e2609f00f6bb1686a2c0ca5b..cee546f2067d8cb5c07cafecde6b878fcf84e7fb 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemoqemumanager.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemoqemumanager.cpp @@ -29,6 +29,7 @@ #include "maemoqemumanager.h" +#include "maemoglobal.h" #include "maemorunconfiguration.h" #include "maemotoolchain.h" #include "qtversionmanager.h" @@ -224,7 +225,7 @@ void MaemoQemuManager::projectChanged(ProjectExplorer::Project *project) bool targetIsMaemo(const QString &id) { - return id == QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID); + return id == QLatin1String(Qt4ProjectManager::Constants::MAEMO_DEVICE_TARGET_ID); } void MaemoQemuManager::targetAdded(ProjectExplorer::Target *target) @@ -680,28 +681,14 @@ QString MaemoQemuManager::runtimeForQtVersion(const QString &qmakeCommand) const const QString &target = targetRoot(qmakeCommand); const QString &madRoot = maddeRoot(qmakeCommand); - QString madCommand = madRoot + QLatin1String("/bin/mad"); + const QString madCommand = madRoot + QLatin1String("/bin/mad"); if (!QFileInfo(madCommand).exists()) return QString(); QProcess madProc; - QStringList arguments(QLatin1String("info")); + const QStringList arguments(QLatin1String("info")); -#ifdef Q_OS_WIN - QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); - env.insert("HOME", - QDesktopServices::storageLocation(QDesktopServices::HomeLocation)); - env.insert(QLatin1String("PATH"), - QDir::toNativeSeparators(madRoot % QLatin1String("/bin")) - % QLatin1Char(';') % env.value(QLatin1String("PATH"))); - - madProc.setProcessEnvironment(env); - - arguments.prepend(madCommand); - madCommand = madRoot + QLatin1String("/bin/sh.exe"); -#endif - - madProc.start(madCommand, arguments); + MaemoGlobal::callMaddeShellScript(madProc, madRoot, madCommand, arguments); if (!madProc.waitForStarted() || !madProc.waitForFinished()) return QString();