summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mkspecs/features/java.prf18
-rw-r--r--mkspecs/features/qt_android_deps.prf23
-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
11 files changed, 72 insertions, 28 deletions
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf
index 6cbd690c37..25f6e66427 100644
--- a/mkspecs/features/java.prf
+++ b/mkspecs/features/java.prf
@@ -17,7 +17,10 @@ android {
CONFIG += android_app
}
-isEmpty(CLASS_DIR): CLASS_DIR = .classes
+isEmpty(CLASS_DIR) {
+ bundled_jar_file: CLASS_DIR = .classes.bundled
+ else: CLASS_DIR = .classes
+}
CONFIG -= qt
@@ -47,17 +50,16 @@ QMAKE_LIBS_OPENGL_ES2 =
QMAKE_LIBDIR =
QMAKE_EXTENSION_SHLIB = jar
-# Override linker with dex (for Android) or jar (for other java builds)
-android {
- QMAKE_LINK_O_FLAG = --output=
+# Override linker with dex (for distributable Android archives) or jar (for other java builds)
+android:!bundled_jar_file {
contains(QMAKE_HOST.os, Windows) {
- QMAKE_LINK = $$PWD/data/android/dx $$SDK_ROOT --dex
+ DEX_CMD = $$PWD/data/android/dx $$SDK_ROOT
} else {
- QMAKE_LINK = $$SDK_ROOT/platform-tools/dx --dex
+ DEX_CMD = $$SDK_ROOT/platform-tools/dx
}
+ QMAKE_LINK_SHLIB_CMD = $$DEX_CMD --dex --output $(TARGET) $$CLASS_DIR
} else {
- QMAKE_LINK_O_FLAG = "cf "
- QMAKE_LINK = jar
+ QMAKE_LINK_SHLIB_CMD = jar cf $(TARGET) -C $$CLASS_DIR .
}
# Force link step to always happen, since we are always updating the
diff --git a/mkspecs/features/qt_android_deps.prf b/mkspecs/features/qt_android_deps.prf
index 27814a90a5..ba37649201 100644
--- a/mkspecs/features/qt_android_deps.prf
+++ b/mkspecs/features/qt_android_deps.prf
@@ -17,6 +17,12 @@ ANDROID_DEPENDS_DIR = $$MODULE_QMAKE_OUTDIR/lib/
DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml
!build_pass {
+ !isEmpty(MODULE_PLUGIN_TYPES) {
+ for(PLUGIN_TYPE, MODULE_PLUGIN_TYPES) {
+ ANDROID_BUNDLED_FILES += "plugins/$$PLUGIN_TYPE"
+ }
+ }
+
!isEmpty(ANDROID_JAR_DEPENDENCIES) {
for(JAR_FILE, ANDROID_JAR_DEPENDENCIES) {
INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
@@ -26,6 +32,15 @@ DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml
}
}
+ !isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES) {
+ for(JAR_FILE, ANDROID_BUNDLED_JAR_DEPENDENCIES) {
+ INIT_CLASS = $$section(JAR_FILE, ":", 1, 1)
+ !isEmpty(INIT_CLASS): INIT_CLASS = "initClass=\"$$INIT_CLASS\""
+ JAR_FILE = $$section(JAR_FILE, ":", 0, 0)
+ FILE_CONTENT += "<jar bundling=\"1\" file=\"$$JAR_FILE\" $$INIT_CLASS />"
+ }
+ }
+
!isEmpty(ANDROID_LIB_DEPENDENCIES) {
for(LIB_FILE, ANDROID_LIB_DEPENDENCIES) {
FILE_CONTENT += "<lib file=\"$$LIB_FILE\" />"
@@ -40,13 +55,19 @@ DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml
}
}
+ !isEmpty(ANDROID_BUNDLED_FILES) {
+ for (BUNDLED_FILE, ANDROID_BUNDLED_FILES) {
+ FILE_CONTENT += "<bundled file=\"$$BUNDLED_FILE\" />"
+ }
+ }
+
!isEmpty(FILE_CONTENT) {
FILE_CONTENT = "<rules><dependencies><lib name=\"$$TARGET\"><depends>" $$FILE_CONTENT "</depends></lib></dependencies></rules>"
write_file($$DEPENDENCY_FILE, FILE_CONTENT) | error("Aborting.")
}
}
-!isEmpty(ANDROID_JAR_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS) {
+!isEmpty(ANDROID_JAR_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCIES)|!isEmpty(ANDROID_LIB_DEPENDENCY_REPLACEMENTS)|!isEmpty(ANDROID_BUNDLED_JAR_DEPENDENCIES)|!isEmpty(ANDROID_BUNDLED_FILES) {
install_dependencies_file.files = $$DEPENDENCY_FILE
install_dependencies_file.path = $$[QT_INSTALL_LIBS]
INSTALLS += install_dependencies_file
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)