blob: 40bd6b4b1824101f5c1aa48127038bc3bd96b754 [file] [log] [blame]
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.5'
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'
}