forked from qt-creator/qt-creator
Maemo: Support copying directries to sysroot.
This commit is contained in:
@@ -650,7 +650,7 @@ void MaemoDeployStep::installToSysroot()
|
|||||||
+ d.remoteDir + sep + QFileInfo(d.localFilePath).fileName();
|
+ d.remoteDir + sep + QFileInfo(d.localFilePath).fileName();
|
||||||
sysRootDir.mkpath(d.remoteDir.mid(1));
|
sysRootDir.mkpath(d.remoteDir.mid(1));
|
||||||
QFile::remove(targetFilePath);
|
QFile::remove(targetFilePath);
|
||||||
if (!QFile::copy(d.localFilePath, targetFilePath)) {
|
if (!MaemoGlobal::copyRecursively(d.localFilePath, targetFilePath)) {
|
||||||
writeOutput(tr("Sysroot installation failed: "
|
writeOutput(tr("Sysroot installation failed: "
|
||||||
"Could not copy '%1' to '%2'. Continuing anyway.")
|
"Could not copy '%1' to '%2'. Continuing anyway.")
|
||||||
.arg(QDir::toNativeSeparators(d.localFilePath),
|
.arg(QDir::toNativeSeparators(d.localFilePath),
|
||||||
|
@@ -254,6 +254,43 @@ bool MaemoGlobal::removeRecursively(const QString &filePath, QString &error)
|
|||||||
return true;
|
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,
|
bool MaemoGlobal::callMad(QProcess &proc, const QStringList &args,
|
||||||
const QtVersion *qtVersion, bool useTarget)
|
const QtVersion *qtVersion, bool useTarget)
|
||||||
{
|
{
|
||||||
|
@@ -107,6 +107,8 @@ public:
|
|||||||
static PackagingSystem packagingSystem(MaemoVersion maemoVersion);
|
static PackagingSystem packagingSystem(MaemoVersion maemoVersion);
|
||||||
|
|
||||||
static bool removeRecursively(const QString &filePath, QString &error);
|
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)
|
template<class T> static T *buildStep(const ProjectExplorer::DeployConfiguration *dc)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user