blob: bb460077a6be3e330af17b5f5f40c216cfe527bb [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 23
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'
// To use the local version of vanadium-android library,
// use "-DuseLocalVanadiumLib" parameter in the gradle command.
if (System.getProperty('useLocalVanadiumLib') != null) {
compile project(':android-lib')
// Since baku-toolkit has a transitive dependency on the public version of vanadium-android
// library, it should be explicitly excluded.
compile('io.v:baku-toolkit:0.3.0') {
exclude module: 'vanadium-android'
exclude group: 'io.v'
}
} else {
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')