| buildscript { |
| repositories { |
| mavenCentral() |
| jcenter() |
| } |
| dependencies { |
| // This introduces the Android plugin to make building Android |
| // applications easier. |
| classpath 'com.android.tools.build:gradle:1.3.0' |
| // We are going to define a custom VDL service. The Vanadium |
| // Gradle plugin makes that easier, so let's use that. |
| classpath 'io.v:gradle-plugin:0.9' |
| // Use the Android SDK manager, which will automatically download |
| // the required Android SDK. |
| classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0' |
| } |
| } |
| |
| // Make our lives easier by automatically downloading the appropriate Android SDK. |
| apply plugin: 'android-sdk-manager' |
| // It's an Android application. |
| apply plugin: 'com.android.application' |
| |
| // It's going to use VDL. |
| apply plugin: 'io.v.vdl' |
| |
| |
| // Conditionally apply the google services plugin, depending on existence of the configuration file. |
| // Also, add conditional source folders as source directories. |
| // This is a workaround for not having conditional compilation in Java. |
| if (new File(projectDir, 'google-services.json').exists()) { |
| apply plugin: 'com.google.gms.google-services' |
| android.sourceSets.main.java.srcDir { 'src/conditional/ga_enabled' } |
| } else { |
| android.sourceSets.main.java.srcDir { 'src/conditional/ga_disabled' } |
| } |
| |
| |
| repositories { |
| mavenCentral() |
| jcenter() |
| } |
| |
| android { |
| compileSdkVersion 23 |
| buildToolsVersion "23.0.1" |
| |
| compileOptions { |
| sourceCompatibility JavaVersion.VERSION_1_7 |
| targetCompatibility JavaVersion.VERSION_1_7 |
| } |
| |
| defaultConfig { |
| applicationId "io.v.android.apps.reader" |
| minSdkVersion 22 |
| targetSdkVersion 23 |
| versionCode 1 |
| versionName "1.0" |
| multiDexEnabled true |
| } |
| buildTypes { |
| release { |
| minifyEnabled false |
| proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' |
| } |
| } |
| // Vanadium android-lib only supports armeabi-v7a. |
| // The following block prevents this app from running in arm64-v8a mode. |
| splits { |
| abi { |
| enable true |
| reset() |
| include 'armeabi-v7a' |
| universalApk false |
| } |
| } |
| packagingOptions { |
| exclude 'META-INF/NOTICE.txt' |
| exclude 'META-INF/LICENSE.txt' |
| } |
| } |
| |
| dependencies { |
| compile fileTree(dir: 'libs', include: ['*.jar']) |
| compile 'com.android.support:design:23.0.1' |
| compile 'com.android.support:appcompat-v7:23.0.1' |
| compile 'com.android.support:cardview-v7:23.0.1' |
| compile 'com.android.support:recyclerview-v7:23.0.1' |
| compile 'com.google.android.gms:play-services-analytics:8.3.0' |
| compile 'org.apache.commons:commons-csv:1.2' |
| compile 'org.apache.commons:commons-io:1.3.2' |
| compile 'io.v:vanadium-android:0.8' |
| compile 'io.v:baku-toolkit:0.3.0' |
| |
| // Required by baku-toolkit. |
| apk ('org.slf4j:slf4j-android:1.7.13') |
| } |
| |
| vdl { |
| inputPaths += new File(projectDir, '../../common').canonicalPath |
| packageTranslations += 'vdl->io/v/android/apps/reader/vdl' |
| } |
| |
| // The two tasks below are used for copying the pdf.js files into assets/pdfjs directory. |
| task generatePdfJsFiles(type: Exec) { |
| workingDir '../../web' |
| commandLine 'make', 'public/pdf-web-view.js' |
| } |
| |
| task copyPdfJsFiles(type: Copy, dependsOn: 'generatePdfJsFiles') { |
| from('../../web/public') { |
| include 'pdf*' |
| } |
| |
| into 'src/main/assets/pdfjs' |
| } |
| |
| // These two tasks should run before 'preBuild' task |
| tasks['preBuild'].dependsOn('copyPdfJsFiles') |
| |
| |
| // To use the local version of vanadium-android library, |
| // use "-DuseLocalVanadiumLib" parameter in the gradle command. |
| if (System.getProperty('useLocalVanadiumLib') != null) { |
| |
| // NOTE: Make sure that the gradle wrapper version is 2.5 or higher, before using the dependency |
| // substitution feature. |
| configurations.all { |
| resolutionStrategy { |
| dependencySubstitution { |
| substitute module('io.v:vanadium-android') with project(':android-lib') |
| } |
| } |
| } |
| |
| // Copy the Vanadium native library to the correct location. |
| def jiriRoot = new File(projectDir, '../../../../..').canonicalPath |
| task copyVanadiumLib(type: Copy, dependsOn: ':android-lib:goBuildVanadiumLib') { |
| logger.info(jiriRoot + '/release/go/pkg/android_arm_shared_shared/v.io/x/jni') |
| from jiriRoot + '/release/go/pkg/android_arm_shared_shared/v.io/x/jni' |
| into 'src/main/jniLibs/armeabi-v7a' |
| include 'main.a' |
| rename 'main.a', 'libv23.so' |
| } |
| |
| tasks['preBuild'].dependsOn('copyVanadiumLib') |
| } |
| |
| clean { |
| delete 'src/main/jniLibs/armeabi-v7a/libv23.so' |
| } |