Enable mechanism to bundle Qt in APK

If the Qt version built against is Qt 5, and the deployment
method is "Use libs on device" + "Use local Qt libs", Creator
will copy the required files into the app bundle and set
the necessary meta-data to make the Java code in the app
actually load them from the app bundle.

We also make this deployment method the default on Qt 5.

Change-Id: Ib7a33e7d1fbd22f76c85c31e1dbc68912a38eda8
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Eskil Abrahamsen Blomfeldt
2013-04-19 12:27:58 +02:00
committed by Eike Ziller
parent 8e18adc70f
commit 91d48fe727
6 changed files with 330 additions and 40 deletions

View File

@@ -45,6 +45,8 @@ QT_END_NAMESPACE
namespace Android {
namespace Internal {
class DeployItem;
class AndroidPackageCreationStep : public ProjectExplorer::BuildStep
{
Q_OBJECT
@@ -82,6 +84,8 @@ private slots:
void showInGraphicalShell();
void setQtLibs(const QStringList &qtLibs);
void setPrebundledLibs(const QStringList &prebundledLibs);
void updateXmlForFiles(const QStringList &inLibList, const QStringList &inAssetsList);
void getBundleInformation();
signals:
void updateRequiredLibrariesModels();
@@ -100,6 +104,12 @@ private:
void raiseError(const QString &shortMsg,
const QString &detailedMsg = QString());
QStringList collectRelativeFilePaths(const QString &parentPath);
void collectFiles(QList<DeployItem> *deployList, QList<DeployItem> *pluginsAndImports);
void removeManagedFilesFromPackage();
void copyFilesIntoPackage(const QList<DeployItem> &deployList);
void stripFiles(const QList<DeployItem> &deployList);
static const Core::Id CreatePackageId;
private:
@@ -126,8 +136,13 @@ private:
Utils::FileName m_appPath;
Utils::FileName m_readElf;
QStringList m_qtLibs;
QStringList m_qtLibsWithDependencies;
QVector<AndroidManager::Library> m_availableQtLibs;
QStringList m_prebundledLibs;
QStringList m_bundledJars;
QStringList m_otherBundledFiles;
bool m_bundleQt;
};
} // namespace Internal