summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>2013-04-26 16:23:16 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-01 11:24:15 +0200
commit522c7ba1acaa02904e810662017b19e55c328d11 (patch)
treee9055a8988120bb8d05495ba2c2eb9f54a66279d /src
parent94bed3ad148a6ecba91c0a32e0ee52deda3aec9f (diff)
Enable bundling Qt in Android package in build system
For bundling Qt, we need two things: 1. We need to build a regular .jar file out of the Java files, so that they can be built into the app package. Dexing the classes first (i.e. compiling the JVM bytecode to Dalvik bytecode) is required for loading the .jar file at run-time, but cannot be used for building it into the app, so we need two different paths. 2. We need to specify which extra files have to be bundled for each module (this is primarily for plugins and imports). This is because there is no static dependency on these files, so it cannot be detected during deployment. Task-number: QTBUG-30751 Change-Id: I733603ee5d1c64bd7c5b9357eb5d993b9d0298f7 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/android/jar/bundledjar.pro3
-rw-r--r--src/android/jar/distributedjar.pro2
-rw-r--r--src/android/jar/jar.pri18
-rw-r--r--src/android/jar/jar.pro21
-rw-r--r--src/corelib/corelib.pro2
-rw-r--r--src/gui/gui.pro4
-rw-r--r--src/network/network.pro3
-rw-r--r--src/sql/sql.pro3
-rw-r--r--src/widgets/widgets.pro3
9 files changed, 40 insertions, 19 deletions
diff --git a/src/android/jar/bundledjar.pro b/src/android/jar/bundledjar.pro
new file mode 100644
index 0000000000..e82c01c51b
--- /dev/null
+++ b/src/android/jar/bundledjar.pro
@@ -0,0 +1,3 @@
+TARGET = QtAndroid-bundled
+CONFIG += bundled_jar_file
+include(jar.pri)
diff --git a/src/android/jar/distributedjar.pro b/src/android/jar/distributedjar.pro
new file mode 100644
index 0000000000..15f362f629
--- /dev/null
+++ b/src/android/jar/distributedjar.pro
@@ -0,0 +1,2 @@
+TARGET = QtAndroid
+include(jar.pri)
diff --git a/src/android/jar/jar.pri b/src/android/jar/jar.pri
new file mode 100644
index 0000000000..19501d7b29
--- /dev/null
+++ b/src/android/jar/jar.pri
@@ -0,0 +1,18 @@
+CONFIG += java
+DESTDIR = $$[QT_INSTALL_PREFIX/get]/jar
+
+PATHPREFIX = $$PWD/src/org/qtproject/qt5/android/
+
+JAVACLASSPATH += $$PWD/src/
+JAVASOURCES += \
+ $$PATHPREFIX/QtActivityDelegate.java \
+ $$PATHPREFIX/QtEditText.java \
+ $$PATHPREFIX/QtInputConnection.java \
+ $$PATHPREFIX/QtLayout.java \
+ $$PATHPREFIX/QtNative.java \
+ $$PATHPREFIX/QtNativeLibrariesDir.java \
+ $$PATHPREFIX/QtSurface.java
+
+# install
+target.path = $$[QT_INSTALL_PREFIX]/jar
+INSTALLS += target
diff --git a/src/android/jar/jar.pro b/src/android/jar/jar.pro
index 1955f16142..8d19c1b7d6 100644
--- a/src/android/jar/jar.pro
+++ b/src/android/jar/jar.pro
@@ -1,19 +1,2 @@
-CONFIG += java
-TARGET = QtAndroid
-DESTDIR = $$[QT_INSTALL_PREFIX/get]/jar
-
-PATHPREFIX = $$PWD/src/org/qtproject/qt5/android/
-
-JAVACLASSPATH += $$PWD/src/
-JAVASOURCES += \
- $$PATHPREFIX/QtActivityDelegate.java \
- $$PATHPREFIX/QtEditText.java \
- $$PATHPREFIX/QtInputConnection.java \
- $$PATHPREFIX/QtLayout.java \
- $$PATHPREFIX/QtNative.java \
- $$PATHPREFIX/QtNativeLibrariesDir.java \
- $$PATHPREFIX/QtSurface.java
-
-# install
-target.path = $$[QT_INSTALL_PREFIX]/jar
-INSTALLS += target
+TEMPLATE = subdirs
+SUBDIRS += bundledjar.pro distributedjar.pro
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro
index 3b7eb11229..0a5cc04a17 100644
--- a/src/corelib/corelib.pro
+++ b/src/corelib/corelib.pro
@@ -21,6 +21,8 @@ ANDROID_JAR_DEPENDENCIES = \
ANDROID_LIB_DEPENDENCIES = \
plugins/platforms/android/libqtforandroid.so \
libs/libgnustl_shared.so
+ANDROID_BUNDLED_JAR_DEPENDENCIES = \
+ jar/QtAndroid-bundled.jar
load(qt_module)
diff --git a/src/gui/gui.pro b/src/gui/gui.pro
index 062f00c4c4..b44f563b3e 100644
--- a/src/gui/gui.pro
+++ b/src/gui/gui.pro
@@ -8,6 +8,10 @@ DEFINES += QT_NO_USING_NAMESPACE
QMAKE_DOCS = $$PWD/doc/qtgui.qdocconf
+MODULE_PLUGIN_TYPES = \
+ platforms \
+ imageformats
+
load(qt_module)
# Code coverage with TestCocoon
diff --git a/src/network/network.pro b/src/network/network.pro
index d2b2447611..79e357e0cb 100644
--- a/src/network/network.pro
+++ b/src/network/network.pro
@@ -11,6 +11,9 @@ DEFINES += QT_NO_USING_NAMESPACE
#DEFINES += QUDPSOCKET_DEBUG QUDPSERVER_DEBUG
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x64000000
+MODULE_PLUGIN_TYPES = \
+ bearer
+
QMAKE_DOCS = $$PWD/doc/qtnetwork.qdocconf
load(qt_module)
diff --git a/src/sql/sql.pro b/src/sql/sql.pro
index 4f5af51c52..10004cb445 100644
--- a/src/sql/sql.pro
+++ b/src/sql/sql.pro
@@ -4,6 +4,9 @@ QT = core-private
DEFINES += QT_NO_USING_NAMESPACE
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x62000000
+MODULE_PLUGIN_TYPES = \
+ sqldrivers
+
QMAKE_DOCS = $$PWD/doc/qtsql.qdocconf
load(qt_module)
diff --git a/src/widgets/widgets.pro b/src/widgets/widgets.pro
index 18a4d57900..43f7ae8af3 100644
--- a/src/widgets/widgets.pro
+++ b/src/widgets/widgets.pro
@@ -7,6 +7,9 @@ DEFINES += QT_NO_USING_NAMESPACE
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x65000000
irix-cc*:QMAKE_CXXFLAGS += -no_prelink -ptused
+MODULE_PLUGIN_TYPES = \
+ accessible
+
QMAKE_DOCS = $$PWD/doc/qtwidgets.qdocconf
load(qt_module)