forked from qt-creator/qt-creator
Merge remote branch 'origin/2.0'
Conflicts: doc/qtcreator.qdoc src/plugins/help/helpplugin.cpp src/plugins/projectexplorer/projectexplorer.cpp src/plugins/projectexplorer/projectexplorer.h src/plugins/qt4projectmanager/qt-maemo/maemopackagecontents.cpp src/plugins/qt4projectmanager/qt-maemo/maemopackagecontents.h src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationwidget.cpp src/plugins/qt4projectmanager/qt-maemo/maemoruncontrol.cpp src/tools/qml/qmldump/main.cpp
This commit is contained in:
@@ -34,10 +34,10 @@
|
||||
|
||||
#include "maemoruncontrol.h"
|
||||
|
||||
#include "maemopackagecontents.h"
|
||||
#include "maemopackagecreationstep.h"
|
||||
#include "maemosshthread.h"
|
||||
#include "maemorunconfiguration.h"
|
||||
#include "maemopackagecontents.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/progressmanager/progressmanager.h>
|
||||
@@ -49,6 +49,7 @@
|
||||
#include <utils/qtcassert.h>
|
||||
#include <projectexplorer/projectexplorerconstants.h>
|
||||
|
||||
#include <QtCore/QCryptographicHash>
|
||||
#include <QtCore/QDir>
|
||||
#include <QtCore/QFileInfo>
|
||||
#include <QtCore/QFuture>
|
||||
@@ -129,26 +130,54 @@ void AbstractMaemoRunControl::startDeployment(bool forDebugging)
|
||||
if (m_stoppedByUser) {
|
||||
emit finished();
|
||||
} else {
|
||||
m_needsInstall = false;
|
||||
m_deployables.clear();
|
||||
if (m_runConfig->currentlyNeedsDeployment(m_devConfig.server.host)) {
|
||||
m_deployables.append(Deployable(packageFileName(),
|
||||
QFileInfo(executableOnHost()).canonicalPath(),
|
||||
&MaemoRunConfiguration::wasDeployed));
|
||||
m_needsInstall = true;
|
||||
m_remoteLinks.clear();
|
||||
const MaemoPackageCreationStep * const packageStep
|
||||
= m_runConfig->packageStep();
|
||||
if (packageStep->isPackagingEnabled()) {
|
||||
const MaemoDeployable d(packageFilePath(), remoteDir());
|
||||
m_needsInstall = addDeployableIfNeeded(d);
|
||||
} else {
|
||||
m_needsInstall = false;
|
||||
}
|
||||
if (forDebugging
|
||||
&& m_runConfig->debuggingHelpersNeedDeployment(m_devConfig.server.host)) {
|
||||
const QFileInfo &info(m_runConfig->dumperLib());
|
||||
m_deployables.append(Deployable(info.fileName(), info.canonicalPath(),
|
||||
&MaemoRunConfiguration::debuggingHelpersDeployed));
|
||||
const MaemoPackageContents * const packageContents
|
||||
= packageStep->packageContents();
|
||||
for (int i = 0; i < packageContents->rowCount(); ++i) {
|
||||
const MaemoDeployable &d = packageContents->deployableAt(i);
|
||||
if (addDeployableIfNeeded(d))
|
||||
m_needsInstall = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (forDebugging) {
|
||||
QFileInfo dumperInfo(m_runConfig->dumperLib());
|
||||
if (dumperInfo.exists()) {
|
||||
const MaemoDeployable d(m_runConfig->dumperLib(), remoteDir());
|
||||
m_needsInstall = addDeployableIfNeeded(d);
|
||||
}
|
||||
}
|
||||
deploy();
|
||||
}
|
||||
}
|
||||
|
||||
bool AbstractMaemoRunControl::addDeployableIfNeeded(const MaemoDeployable &deployable)
|
||||
{
|
||||
if (m_runConfig->currentlyNeedsDeployment(m_devConfig.server.host,
|
||||
deployable)) {
|
||||
const QString fileName
|
||||
= QFileInfo(deployable.localFilePath).fileName();
|
||||
const QString remoteFilePath = deployable.remoteDir + '/' + fileName;
|
||||
const QString sftpTargetFilePath = remoteDir() + '/' + fileName + '.'
|
||||
+ QCryptographicHash::hash(remoteFilePath.toUtf8(),
|
||||
QCryptographicHash::Md5).toHex();
|
||||
m_deployables.append(MaemoDeployable(deployable.localFilePath,
|
||||
sftpTargetFilePath));
|
||||
m_remoteLinks.insert(sftpTargetFilePath, remoteFilePath); // TODO fix merge mess
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void AbstractMaemoRunControl::deploy()
|
||||
{
|
||||
Core::ICore::instance()->progressManager()
|
||||
@@ -157,14 +186,12 @@ void AbstractMaemoRunControl::deploy()
|
||||
if (!m_deployables.isEmpty()) {
|
||||
QList<Core::SftpTransferInfo> deploySpecs;
|
||||
QStringList files;
|
||||
foreach (const Deployable &deployable, m_deployables) {
|
||||
const QString srcFilePath
|
||||
= deployable.dir % QDir::separator() % deployable.fileName;
|
||||
const QString tgtFilePath
|
||||
= remoteDir() % QDir::separator() % deployable.fileName;
|
||||
files << srcFilePath;
|
||||
deploySpecs << Core::SftpTransferInfo(srcFilePath,
|
||||
tgtFilePath.toUtf8(), Core::SftpTransferInfo::Upload);
|
||||
foreach (const MaemoDeployable &deployable, m_deployables) {
|
||||
files << deployable.localFilePath;
|
||||
const QString remoteFilePath = deployable.remoteDir + '/' + QFileInfo(deployable.localFilePath).fileName();
|
||||
deploySpecs << Core::SftpTransferInfo(deployable.localFilePath,
|
||||
remoteFilePath.toUtf8(),
|
||||
Core::SftpTransferInfo::Upload);
|
||||
}
|
||||
emit appendMessage(this, tr("Files to deploy: %1.").arg(files.join(" ")), false);
|
||||
m_sshDeployer.reset(new MaemoSshDeployer(m_devConfig.server, deploySpecs));
|
||||
@@ -184,8 +211,10 @@ void AbstractMaemoRunControl::deploy()
|
||||
|
||||
void AbstractMaemoRunControl::handleFileCopied()
|
||||
{
|
||||
Deployable deployable = m_deployables.takeFirst();
|
||||
(m_runConfig->*deployable.updateTimestamp)(m_devConfig.server.host);
|
||||
const MaemoDeployable &deployable = m_deployables.takeFirst();
|
||||
m_runConfig->setDeployed(m_devConfig.server.host,
|
||||
MaemoDeployable(deployable.localFilePath,
|
||||
m_remoteLinks.value(deployable.remoteDir))); // TODO fix merge mess
|
||||
m_progress.setProgressValue(m_progress.progressValue() + 1);
|
||||
}
|
||||
|
||||
@@ -324,8 +353,21 @@ QString AbstractMaemoRunControl::remoteSudo() const
|
||||
|
||||
QString AbstractMaemoRunControl::remoteInstallCommand() const
|
||||
{
|
||||
return QString::fromLocal8Bit("%1 dpkg -i %2").arg(remoteSudo())
|
||||
.arg(packageFileName());
|
||||
Q_ASSERT(m_needsInstall);
|
||||
QString cmd;
|
||||
for (QMap<QString, QString>::ConstIterator it = m_remoteLinks.begin();
|
||||
it != m_remoteLinks.end(); ++it) {
|
||||
cmd += QString::fromLocal8Bit("%1 ln -sf %2 %3 && ")
|
||||
.arg(remoteSudo(), it.key(), it.value());
|
||||
}
|
||||
if (m_runConfig->packageStep()->isPackagingEnabled()) {
|
||||
cmd += QString::fromLocal8Bit("%1 dpkg -i %2").arg(remoteSudo())
|
||||
.arg(packageFileName());
|
||||
} else if (!m_remoteLinks.isEmpty()) {
|
||||
return cmd.remove(cmd.length() - 4, 4); // Trailing " && "
|
||||
}
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
||||
const QString AbstractMaemoRunControl::targetCmdLinePrefix() const
|
||||
|
||||
Reference in New Issue
Block a user