123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #include "tizendebug.h"
- #include "tizenconfigurations.h"
- #include "tizendeploypackageinstallationstep.h"
- #include "tizendeploypackageinstallationconfigwidget.h"
- #include "tizenmanager.h"
- #include "processoutputhandler.h"
- #include <projectexplorer/buildsteplist.h>
- #include <projectexplorer/deployconfiguration.h>
- #include <projectexplorer/target.h>
- #include <projectexplorer/buildconfiguration.h>
- #include <projectexplorer/kitinformation.h>
- #include <utils/hostosinfo.h>
- #include <QDebug>
- #include <QDir>
- #include <QThread>
- using namespace Tizen::Internal;
- const Core::Id TizenDeployPackageInstallationStep::Id = Core::Id("Qt4ProjectManager.TizenDeployPackageInstallationStep");
- TizenDeployPackageInstallationStep::TizenDeployPackageInstallationStep(ProjectExplorer::BuildStepList *bsl)
- : BuildStep(bsl, Id)
- {
- const QString name = tr("Install package(tpk)");
- setDefaultDisplayName(name);
- setDisplayName(name);
- }
- bool TizenDeployPackageInstallationStep::init()
- {
- return true;
- }
- ProjectExplorer::BuildStepConfigWidget *TizenDeployPackageInstallationStep::createConfigWidget()
- {
- TizenDeployPackageInstallationConfigWidget *configWidget = new TizenDeployPackageInstallationConfigWidget();
- TizenConfig tc = TizenConfigurations::currentConfig();
- Utils::FileName packageFileName = TizenManager::commandLineBuildPath(target())
- .appendPath(TizenManager::packageName(target()));
- configWidget->setAdditionalSummaryText(QString::fromLatin1("%1 install %2")
- .arg(tc.sdbLocation().toString())
- .arg(packageFileName.toString()));
- return configWidget;
- }
- TizenDeployPackageInstallationStep::TizenDeployPackageInstallationStep(ProjectExplorer::BuildStepList *bc, TizenDeployPackageInstallationStep *other)
- : BuildStep(bc, other)
- { }
- void TizenDeployPackageInstallationStep::run(QFutureInterface<bool> &fi)
- {
- emit addOutput(tr("Installing package."), BuildStep::MessageOutput);
- QProcess *sdbProcess = new QProcess;
- connect(new ProcessOutputHandler(sdbProcess),
- SIGNAL(output(QString,ProjectExplorer::BuildStep::OutputFormat,ProjectExplorer::BuildStep::OutputNewlineSetting)),
- SIGNAL(addOutput(QString,ProjectExplorer::BuildStep::OutputFormat,ProjectExplorer::BuildStep::OutputNewlineSetting)));
- QStringList arguments;
- ProjectExplorer::IDevice::ConstPtr device = ProjectExplorer::DeviceKitInformation::device(target()->kit());
- if (device.isNull()) {
- emit addOutput(tr("No device. Package %1 can't be installed.").arg(TizenManager::packageName(target())), BuildStep::ErrorOutput);
- fi.reportResult(false);
- sdbProcess->deleteLater();
- return;
- }
- arguments << QLatin1String("--serial")
- << device->id().toString()
- << QLatin1String("install")
- << TizenManager::commandLineBuildPath(target()).appendPath(TizenManager::packageName(target())).toString();
- TizenConfig tc = TizenConfigurations::currentConfig();
- sdbProcess->start(tc.sdbLocation().toString(), arguments);
- if(!sdbProcess->waitForStarted(5000) || !sdbProcess->waitForFinished(360000)) {
- addOutput(tr("Can't start %1.").arg(tc.sdbLocation().toString()), BuildStep::ErrorOutput);
- fi.reportResult(false);
- sdbProcess->deleteLater();
- return;
- }
- if (sdbProcess->exitCode() != 0) {
- emit addOutput(tr("Error while installing package."), BuildStep::ErrorOutput);
- fi.reportResult(false);
- } else {
- emit addOutput(tr("Package installed."), BuildStep::MessageOutput);
- fi.reportResult(true);
- }
- disconnect(sdbProcess, 0, this, 0);
- sdbProcess->deleteLater();
- }
|