From 1ddc45fd9cd489be2b99431a1801a42b422983b8 Mon Sep 17 00:00:00 2001 From: Florian Walch Date: Tue, 25 Feb 2014 09:35:55 +0100 Subject: [PATCH] Build native code for multiple architectures. * Include native libs without requiring intermediate .jar. * Fix build warnings; use latest build tools. --- BUILDING.md | 14 ++++++++++++++ build.gradle | 4 ++-- library/build.gradle | 6 +++--- library/jni/Application.mk | 1 + library/libs/armeabi.jar | Bin 10214 -> 0 bytes 5 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 library/jni/Application.mk delete mode 100644 library/libs/armeabi.jar diff --git a/BUILDING.md b/BUILDING.md index 0d4ac25aa6..8a60bf59c4 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -6,3 +6,17 @@ Building TextSecure Execute Gradle: ./gradlew build + +Re-building native components +----------------------------- + +Note: This step is optional; native components are contained as binaries (see [library/libs](library/libs)). + +1. Ensure that the Android NDK is installed. + +Execute ndk-build: + + cd library + ndk-build + +Afterwards, execute Gradle as above to re-create the APK. diff --git a/build.gradle b/build.gradle index 22f9548605..6f88828860 100644 --- a/build.gradle +++ b/build.gradle @@ -29,7 +29,7 @@ dependencies { android { compileSdkVersion 19 - buildToolsVersion '19.0.0' + buildToolsVersion '19.0.2' defaultConfig { minSdkVersion 9 @@ -42,7 +42,7 @@ android { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] - aild.srcDirs = ['src'] + aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] diff --git a/library/build.gradle b/library/build.gradle index 890c700287..a9a2d497af 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -23,12 +23,11 @@ dependencies { compile 'com.madgag:sc-light-jdk15on:1.47.0.2' compile 'com.googlecode.libphonenumber:libphonenumber:5.3' compile 'org.whispersystems:gson:2.2.4' - compile fileTree(dir: 'libs', include: 'armeabi.jar') } android { compileSdkVersion 19 - buildToolsVersion '19.0.0' + buildToolsVersion '19.0.2' android { sourceSets { @@ -36,10 +35,11 @@ android { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] - aild.srcDirs = ['src'] + aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] } } } diff --git a/library/jni/Application.mk b/library/jni/Application.mk new file mode 100644 index 0000000000..7866257b9d --- /dev/null +++ b/library/jni/Application.mk @@ -0,0 +1 @@ +APP_ABI := armeabi armeabi-v7a x86 diff --git a/library/libs/armeabi.jar b/library/libs/armeabi.jar deleted file mode 100644 index b34bd1237c9c11762b1ab050900123c1f7170519..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10214 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 E5B3Ye9{>OV