forked from qt-creator/qt-creator
Make it possible for a module to specify bundling single files
To make sure libQt5QuickParticles.so is loaded for Qt Quick applications, we need to be able to specify bundling specific files, not just subdirectories. Task-number: QTCREATORBUG-9299 Change-Id: I743ee5ea714355ba6398378f4f54b6ede64d4c85 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -520,12 +520,20 @@ void AndroidPackageCreationStep::collectFiles(QList<DeployItem> *deployList,
|
|||||||
|
|
||||||
QSet<QString> alreadyListed;
|
QSet<QString> alreadyListed;
|
||||||
foreach (QString bundledFile, m_otherBundledFiles) {
|
foreach (QString bundledFile, m_otherBundledFiles) {
|
||||||
if (!bundledFile.endsWith(QLatin1Char('/')))
|
QStringList allFiles;
|
||||||
bundledFile.append(QLatin1Char('/'));
|
if (QFileInfo(qtVersionSourcePath + QLatin1Char('/') + bundledFile).isDir()) {
|
||||||
|
if (!bundledFile.endsWith(QLatin1Char('/')))
|
||||||
|
bundledFile.append(QLatin1Char('/'));
|
||||||
|
|
||||||
|
allFiles = collectRelativeFilePaths(qtVersionSourcePath + QLatin1Char('/') + bundledFile);
|
||||||
|
} else {
|
||||||
|
// If we need to bundle a specific file, we just add an empty string and the file
|
||||||
|
// names and data will be prepared correctly in the loop below.
|
||||||
|
allFiles = QStringList(QString());
|
||||||
|
}
|
||||||
|
|
||||||
QStringList allFiles = collectRelativeFilePaths(qtVersionSourcePath + QLatin1Char('/') + bundledFile);
|
|
||||||
foreach (QString file, allFiles) {
|
foreach (QString file, allFiles) {
|
||||||
QString fullPath = qtVersionSourcePath + QLatin1Char('/') + bundledFile + QLatin1Char('/') + file;
|
QString fullPath = qtVersionSourcePath + QLatin1Char('/') + bundledFile + file;
|
||||||
if (alreadyListed.contains(fullPath))
|
if (alreadyListed.contains(fullPath))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@@ -534,22 +542,31 @@ void AndroidPackageCreationStep::collectFiles(QList<DeployItem> *deployList,
|
|||||||
QString garbledFileName;
|
QString garbledFileName;
|
||||||
QString destinationPath;
|
QString destinationPath;
|
||||||
bool shouldStrip = false;
|
bool shouldStrip = false;
|
||||||
if (file.endsWith(QLatin1String(".so"))) {
|
|
||||||
garbledFileName = QLatin1String("lib")
|
QString fullFileName = bundledFile + file;
|
||||||
+ AndroidManager::libraryPrefix()
|
if (fullFileName.endsWith(QLatin1String(".so"))) {
|
||||||
+ QString(bundledFile).replace(QLatin1Char('/'), QLatin1Char('_'))
|
if (fullFileName.startsWith(QLatin1String("lib/"))) {
|
||||||
+ QString(file).replace(QLatin1Char('/'), QLatin1Char('_'));
|
// Special case when the destination folder is lib/
|
||||||
|
// Since this is also the source folder, there is no need to garble the file
|
||||||
|
// name and copy it. We also won't have write access to this folder, so we
|
||||||
|
// couldn't if we wanted to.
|
||||||
|
garbledFileName = fullFileName.mid(sizeof("lib/") - 1);
|
||||||
|
} else {
|
||||||
|
garbledFileName = QLatin1String("lib")
|
||||||
|
+ AndroidManager::libraryPrefix()
|
||||||
|
+ QString(fullFileName).replace(QLatin1Char('/'), QLatin1Char('_'));
|
||||||
|
}
|
||||||
destinationPath = androidLibPath + QLatin1Char('/') + garbledFileName;
|
destinationPath = androidLibPath + QLatin1Char('/') + garbledFileName;
|
||||||
shouldStrip = true;
|
shouldStrip = true;
|
||||||
} else {
|
} else {
|
||||||
garbledFileName = AndroidManager::libraryPrefix() + bundledFile + file;
|
garbledFileName = AndroidManager::libraryPrefix() + fullFileName;
|
||||||
destinationPath = androidAssetsPath + garbledFileName;
|
destinationPath = androidAssetsPath + garbledFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
deployList->append(DeployItem(fullPath, 0, destinationPath, shouldStrip));
|
deployList->append(DeployItem(fullPath, 0, destinationPath, shouldStrip));
|
||||||
pluginsAndImportsList->append(DeployItem(garbledFileName,
|
pluginsAndImportsList->append(DeployItem(garbledFileName,
|
||||||
0,
|
0,
|
||||||
bundledFile + file,
|
fullFileName,
|
||||||
shouldStrip));
|
shouldStrip));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user