summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2014-08-07 13:04:35 +0300
committerBogDan Vatra <bogdan@kde.org>2014-08-07 12:27:51 +0200
commit8b7a2d582c4c3030c48c799a4384a62be8f605b0 (patch)
tree30e487dbcdea0a3dbbb5c53796fdaadc05944fa5 /src
parente26404e43ffbb0f8f00f017c3c0fa02e44a2d116 (diff)
Android: Say hello to gradle!
Add build.gradle script, move Android template files to another folder. These files are specific to every project, and they should be copied to then project android folder. Switching from Ant to Gradle brings lots of advantages: - it is way faster when rebuilding (25-50% faster than ant). - it enables first class Android Studio integration. - adding Android Extras libs (e.g. Google Play services, OBB, etc.) to your project is now painless. [ChangeLog][Android] Added Gradle support to build the APK. Change-Id: I9c8cb355118c9ac1997270c8b80916eca43fce4d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/android/android.pro2
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java3
-rw-r--r--src/android/java/java.pro4
-rw-r--r--src/android/java/res/values/strings.xml3
-rw-r--r--src/android/java/version.xml8
-rw-r--r--src/android/templates/AndroidManifest.xml (renamed from src/android/java/AndroidManifest.xml)4
-rw-r--r--src/android/templates/build.gradle51
-rw-r--r--src/android/templates/res/values/libs.xml (renamed from src/android/java/res/values/libs.xml)0
-rw-r--r--src/android/templates/templates.pro21
9 files changed, 79 insertions, 17 deletions
diff --git a/src/android/android.pro b/src/android/android.pro
index 1850f012c0..55a94a2c06 100644
--- a/src/android/android.pro
+++ b/src/android/android.pro
@@ -1,2 +1,2 @@
TEMPLATE = subdirs
-SUBDIRS = jar java accessibility
+SUBDIRS = jar java templates accessibility
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
index 9407db932f..f57497069a 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -507,6 +507,9 @@ public class QtActivityDelegate
? extras.getString("gdbserver_socket")
: "+debug-socket";
+ if (!(new File(gdbserverPath)).exists())
+ gdbserverPath += ".so";
+
// start debugger
m_debuggerProcess = Runtime.getRuntime().exec(gdbserverPath
+ socket
diff --git a/src/android/java/java.pro b/src/android/java/java.pro
index cff2d55d86..9d37eb1026 100644
--- a/src/android/java/java.pro
+++ b/src/android/java/java.pro
@@ -1,8 +1,6 @@
CONFIG -= qt android_install
javaresources.files = \
- $$PWD/AndroidManifest.xml \
- $$PWD/version.xml \
$$PWD/res \
$$PWD/src
@@ -18,8 +16,6 @@ INSTALLS += javaresources
OUT_PATH = $$shell_path($$OUT_PWD)
QMAKE_POST_LINK += \
- $${QMAKE_COPY} $$shell_path($$PWD/AndroidManifest.xml) $$OUT_PATH $$RETURN \
- $${QMAKE_COPY} $$shell_path($$PWD/version.xml) $$OUT_PATH $$RETURN \
$${QMAKE_COPY_DIR} $$shell_path($$PWD/res) $$OUT_PATH $$RETURN \
$${QMAKE_COPY_DIR} $$shell_path($$PWD/src) $$OUT_PATH
}
diff --git a/src/android/java/res/values/strings.xml b/src/android/java/res/values/strings.xml
index 300f0673a4..fcc3eb097b 100644
--- a/src/android/java/res/values/strings.xml
+++ b/src/android/java/res/values/strings.xml
@@ -1,7 +1,6 @@
<?xml version='1.0' encoding='utf-8'?>
<resources>
- <string name="app_name"><!-- %%INSERT_APP_NAME%% --></string>
-
+ <!-- %%INSERT_STRINGS -->
<string name="ministro_not_found_msg">Can\'t find Ministro service.\nThe application can\'t start.</string>
<string name="ministro_needed_msg">This application requires Ministro service. Would you like to install it?</string>
<string name="fatal_error_msg">Your application encountered a fatal error and cannot continue.</string>
diff --git a/src/android/java/version.xml b/src/android/java/version.xml
deleted file mode 100644
index e05bba7588..0000000000
--- a/src/android/java/version.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<version value="5.3">
- <ignore>
- <file>AndroidManifest.xml</file>
- <file>libs.xml</file>
- <file>logo.png</file>
- <file>icon.png</file>
- </ignore>
-</version>
diff --git a/src/android/java/AndroidManifest.xml b/src/android/templates/AndroidManifest.xml
index e5060f0de9..60c612976f 100644
--- a/src/android/java/AndroidManifest.xml
+++ b/src/android/templates/AndroidManifest.xml
@@ -1,9 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<manifest package="org.qtproject.example" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
- <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="@string/app_name">
+ <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|locale|fontScale|keyboard|keyboardHidden|navigation"
android:name="org.qtproject.qt5.android.bindings.QtActivity"
- android:label="@string/app_name"
+ android:label="-- %%INSERT_APP_NAME%% --"
android:screenOrientation="unspecified"
android:launchMode="singleTop">
<intent-filter>
diff --git a/src/android/templates/build.gradle b/src/android/templates/build.gradle
new file mode 100644
index 0000000000..d1ff362269
--- /dev/null
+++ b/src/android/templates/build.gradle
@@ -0,0 +1,51 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.12.1'
+ }
+}
+
+apply plugin: 'android'
+
+dependencies {
+ compile fileTree(dir: 'libs', include: ['*.jar'])
+}
+
+android {
+ /*******************************************************
+ * The following variables:
+ * - androidBuildToolsVersion,
+ * - androidCompileSdkVersion
+ * - qt5AndroidDir - holds the path to qt android files
+ * needed to build any Qt application
+ * on Android.
+ *
+ * are defined in gradle.properties file. This file is
+ * updated by QtCreator and androiddeployqt tools.
+ * Changing them manually might break the compilation!
+ *******************************************************/
+
+ compileSdkVersion androidCompileSdkVersion.toInteger()
+
+ buildToolsVersion androidBuildToolsVersion
+
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
+ aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
+ res.srcDirs = [qt5AndroidDir + '/res', 'res']
+ resources.srcDirs = ['src']
+ renderscript.srcDirs = ['src']
+ assets.srcDirs = ['assets']
+ jniLibs.srcDirs = ['libs']
+ }
+ }
+
+ lintOptions {
+ abortOnError false
+ }
+}
diff --git a/src/android/java/res/values/libs.xml b/src/android/templates/res/values/libs.xml
index 664ab0abec..664ab0abec 100644
--- a/src/android/java/res/values/libs.xml
+++ b/src/android/templates/res/values/libs.xml
diff --git a/src/android/templates/templates.pro b/src/android/templates/templates.pro
new file mode 100644
index 0000000000..684a556c5b
--- /dev/null
+++ b/src/android/templates/templates.pro
@@ -0,0 +1,21 @@
+CONFIG -= qt android_install
+
+templates.files = \
+ $$PWD/AndroidManifest.xml \
+ $$PWD/res
+
+templates.path = $$[QT_INSTALL_PREFIX]/src/android/templates
+
+INSTALLS += templates
+
+!prefix_build:!equals(OUT_PWD, $$PWD) {
+ RETURN = $$escape_expand(\\n\\t)
+ equals(QMAKE_HOST.os, Windows) {
+ RETURN = $$escape_expand(\\r\\n\\t)
+ }
+ OUT_PATH = $$shell_path($$OUT_PWD)
+
+ QMAKE_POST_LINK += \
+ $${QMAKE_COPY} $$shell_path($$PWD/AndroidManifest.xml) $$OUT_PATH $$RETURN \
+ $${QMAKE_COPY_DIR} $$shell_path($$PWD/res) $$OUT_PATH
+}