From 60cd3d1847a23ffbba1688aa67fe2e704d446bad Mon Sep 17 00:00:00 2001 From: Christian Kandeler <christian.kandeler@nokia.com> Date: Wed, 1 Dec 2010 13:31:23 +0100 Subject: [PATCH] Maemo: Call dpkg-buildpackage via mad script. Task-number: QTCREATORBUG-2708 Reviewed-by: kh1 --- .../qt-maemo/maemopackagecreationstep.cpp | 54 +++++++++---------- .../qt-maemo/maemopackagecreationstep.h | 1 - 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp index 849c4b5d2b2..8772cb2b8e5 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp @@ -172,8 +172,34 @@ bool MaemoPackageCreationStep::createPackage(QProcess *buildProc) if (!copyDebianFiles(inSourceBuild)) return false; - if (!runCommand(buildProc, QLatin1String("dpkg-buildpackage -nc -uc -us"))) + const QString maddeRoot = maemoToolChain()->maddeRoot(); + const QString madCommand = maddeRoot + QLatin1String("/bin/mad"); + const QStringList args = QStringList() << QLatin1String("-t") + << maemoToolChain()->targetName() << QLatin1String("dpkg-buildpackage") + << QLatin1String("-nc") << QLatin1String("-uc") << QLatin1String("-us"); + const QString cmdLine = madCommand + QLatin1Char(' ') + + args.join(QLatin1String(" ")); + emit addOutput(tr("Package Creation: Running command '%1'.").arg(cmdLine), + BuildStep::MessageOutput); + MaemoGlobal::callMaddeShellScript(*buildProc, maddeRoot, madCommand, args); + if (!buildProc->waitForStarted()) { + raiseError(tr("Packaging failed."), + tr("Packaging error: Could not start command '%1'. Reason: %2") + .arg(cmdLine, buildProc->errorString())); return false; + } + buildProc->waitForFinished(-1); + if (buildProc->error() != QProcess::UnknownError + || buildProc->exitCode() != 0) { + QString mainMessage = tr("Packaging Error: Command '%1' failed.") + .arg(cmdLine); + if (buildProc->error() != QProcess::UnknownError) + mainMessage += tr(" Reason: %1").arg(buildProc->errorString()); + else + mainMessage += tr("Exit code: %1").arg(buildProc->exitCode()); + raiseError(mainMessage); + return false; + } // Workaround for non-working dh_builddeb --destdir=. if (!QDir(buildDirectory()).isRoot()) { @@ -272,32 +298,6 @@ bool MaemoPackageCreationStep::copyDebianFiles(bool inSourceBuild) return true; } -bool MaemoPackageCreationStep::runCommand(QProcess *buildProc, - const QString &command) -{ - emit addOutput(tr("Package Creation: Running command '%1'.").arg(command), BuildStep::MessageOutput); - buildProc->start(packagingCommand(maemoToolChain(), command)); - if (!buildProc->waitForStarted()) { - raiseError(tr("Packaging failed."), - tr("Packaging error: Could not start command '%1'. Reason: %2") - .arg(command).arg(buildProc->errorString())); - return false; - } - buildProc->waitForFinished(-1); - if (buildProc->error() != QProcess::UnknownError - || buildProc->exitCode() != 0) { - QString mainMessage = tr("Packaging Error: Command '%1' failed.") - .arg(command); - if (buildProc->error() != QProcess::UnknownError) - mainMessage += tr(" Reason: %1").arg(buildProc->errorString()); - else - mainMessage += tr("Exit code: %1").arg(buildProc->exitCode()); - raiseError(mainMessage); - return false; - } - return true; -} - void MaemoPackageCreationStep::handleBuildOutput() { QProcess * const buildProc = qobject_cast<QProcess *>(sender()); diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h index 3f946ed755c..a05e5b0c587 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h +++ b/src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h @@ -111,7 +111,6 @@ private: bool createPackage(QProcess *buildProc); bool copyDebianFiles(bool inSourceBuild); - bool runCommand(QProcess *buildProc, const QString &command); QString maddeRoot() const; QString targetRoot() const; static QString nativePath(const QFile &file); -- GitLab