Commit 3031eae8 authored by Christian Kandeler's avatar Christian Kandeler

Maemo: Support copying directries to sysroot.

parent 11974a14
......@@ -650,7 +650,7 @@ void MaemoDeployStep::installToSysroot()
+ d.remoteDir + sep + QFileInfo(d.localFilePath).fileName();
sysRootDir.mkpath(d.remoteDir.mid(1));
QFile::remove(targetFilePath);
if (!QFile::copy(d.localFilePath, targetFilePath)) {
if (!MaemoGlobal::copyRecursively(d.localFilePath, targetFilePath)) {
writeOutput(tr("Sysroot installation failed: "
"Could not copy '%1' to '%2'. Continuing anyway.")
.arg(QDir::toNativeSeparators(d.localFilePath),
......
......@@ -254,6 +254,43 @@ bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error)
return true;
}
bool MaemoGlobal::copyRecursively(const QString &srcFilePath,
const QString &tgtFilePath, QString *error)
{
QFileInfo srcFileInfo(srcFilePath);
if (srcFileInfo.isDir()) {
QDir targetDir(tgtFilePath);
targetDir.cdUp();
if (!targetDir.mkdir(QFileInfo(tgtFilePath).fileName())) {
if (error) {
*error = tr("Failed to create directory '%1'.")
.arg(QDir::toNativeSeparators(tgtFilePath));
return false;
}
}
QDir sourceDir(srcFilePath);
QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
foreach (const QString &fileName, fileNames) {
const QString newSrcFilePath
= srcFilePath + QLatin1Char('/') + fileName;
const QString newTgtFilePath
= tgtFilePath + QLatin1Char('/') + fileName;
if (!copyRecursively(newSrcFilePath, newTgtFilePath))
return false;
}
} else {
if (!QFile::copy(srcFilePath, tgtFilePath)) {
if (error) {
*error = tr("Could not copy file '%1' to '%2'.")
.arg(QDir::toNativeSeparators(srcFilePath),
QDir::toNativeSeparators(tgtFilePath));
}
return false;
}
}
return true;
}
bool MaemoGlobal::callMad(QProcess &proc, const QStringList &args,
const QtVersion *qtVersion, bool useTarget)
{
......
......@@ -107,6 +107,8 @@ public:
static PackagingSystem packagingSystem(MaemoVersion maemoVersion);
static bool removeRecursively(const QString &filePath, QString &error);
static bool copyRecursively(const QString &srcFilePath,
const QString &tgtFilePath, QString *error = 0);
template<class T> static T *buildStep(const ProjectExplorer::DeployConfiguration *dc)
{
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment