AntennaPod/app/build.gradle

210 lines
6.9 KiB
Groovy

import org.apache.tools.ant.filters.ReplaceTokens
apply plugin: "com.android.application"
apply plugin: "me.tatarka.retrolambda"
apply plugin: 'com.github.triplet.play'
repositories {
maven { url "https://jitpack.io" }
mavenCentral()
}
def getMyVersionName() {
def parsedManifestXml = (new XmlSlurper())
.parse("${projectDir}/src/main/AndroidManifest.xml")
.declareNamespace(android: "http://schemas.android.com/apk/res/android")
return parsedManifestXml."@android:versionName"
}
def getMyVersionCode() {
def parsedManifestXml = (new XmlSlurper())
.parse("${projectDir}/src/main/AndroidManifest.xml")
.declareNamespace(android: "http://schemas.android.com/apk/res/android")
return parsedManifestXml."@android:versionCode".toInteger()
}
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
defaultConfig {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode getMyVersionCode()
versionName "${getMyVersionName()}"
testApplicationId "de.test.antennapod"
testInstrumentationRunner "de.test.antennapod.AntennaPodTestRunner"
generatedDensities = []
}
signingConfigs {
releaseConfig {
if (project.hasProperty("releaseStoreFile")) {
storeFile file(releaseStoreFile)
} else {
storeFile file("keystore")
}
if (project.hasProperty("releaseStorePassword")) {
storePassword releaseStorePassword
} else {
storePassword "password"
}
if (project.hasProperty("releaseKeyAlias")) {
keyAlias releaseKeyAlias
} else {
keyAlias "alias"
}
if (project.hasProperty("releaseKeyPassword")) {
keyPassword releaseKeyPassword
} else {
keyPassword "password"
}
}
}
buildTypes {
def STRING = "String"
def FLATTR_APP_KEY = "FLATTR_APP_KEY"
def FLATTR_APP_SECRET = "FLATTR_APP_SECRET"
def mFlattrAppKey = (project.hasProperty("flattrAppKey")) ? flattrAppKey : "\"\""
def mFlattrAppSecret = (project.hasProperty("flattrAppSecret")) ? flattrAppSecret : "\"\""
debug {
applicationIdSuffix ".debug"
buildConfigField STRING, FLATTR_APP_KEY, mFlattrAppKey
buildConfigField STRING, FLATTR_APP_SECRET, mFlattrAppSecret
}
release {
minifyEnabled true
proguardFile "proguard.cfg"
signingConfig signingConfigs.releaseConfig
buildConfigField STRING, FLATTR_APP_KEY, mFlattrAppKey
buildConfigField STRING, FLATTR_APP_SECRET, mFlattrAppSecret
}
}
packagingOptions {
exclude "META-INF/LICENSE.txt"
exclude "META-INF/NOTICE.txt"
}
lintOptions {
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
productFlavors {
free {
}
play {
}
}
dexOptions {
jumboMode true
}
}
configurations {
freeDebugCompile
freeReleaseCompile
playDebugCompile
playReleaseCompile
}
dependencies {
freeDebugCompile project(path: ":core", configuration: "freeDebug")
freeReleaseCompile project(path: ":core", configuration: "freeRelease")
// free build hack: skip some dependencies
if (!doFreeBuild()) {
playDebugCompile project(path: ":core", configuration: "playDebug")
playReleaseCompile project(path: ":core", configuration: "playRelease")
} else {
System.out.println("app: free build hack, skipping some dependencies")
}
compile "com.android.support:support-v4:$supportVersion"
compile "com.android.support:appcompat-v7:$supportVersion"
compile "com.android.support:design:$supportVersion"
compile "com.android.support:gridlayout-v7:$supportVersion"
compile "com.android.support:percent:$supportVersion"
compile "com.android.support:recyclerview-v7:$supportVersion"
compile "org.apache.commons:commons-lang3:$commonslangVersion"
compile("org.shredzone.flattr4j:flattr4j-core:$flattr4jVersion") {
exclude group: "org.json", module: "json"
}
compile "commons-io:commons-io:$commonsioVersion"
compile "org.jsoup:jsoup:$jsoupVersion"
compile "com.github.bumptech.glide:glide:$glideVersion"
compile "com.squareup.okhttp3:okhttp:$okhttpVersion"
compile "com.squareup.okhttp3:okhttp-urlconnection:$okhttpVersion"
compile "com.squareup.okio:okio:$okioVersion"
compile "de.greenrobot:eventbus:$eventbusVersion"
compile "io.reactivex:rxandroid:$rxAndroidVersion"
compile "io.reactivex:rxjava:$rxJavaVersion"
// And ProGuard rules for RxJava!
compile "com.artemzin.rxjava:proguard-rules:$rxJavaRulesVersion"
compile "com.joanzapata.iconify:android-iconify-fontawesome:$iconifyVersion"
compile "com.joanzapata.iconify:android-iconify-material:$iconifyVersion"
compile("com.github.afollestad.material-dialogs:commons:$materialDialogsVersion") {
transitive = true
}
compile "com.yqritc:recyclerview-flexibledivider:$recyclerviewFlexibledividerVersion"
compile("com.githang:viewpagerindicator:2.5@aar") {
exclude module: "support-v4"
}
compile "com.github.shts:TriangleLabelView:$triangleLabelViewVersion"
compile "com.github.AntennaPod:AntennaPod-AudioPlayer:$audioPlayerVersion"
compile 'com.github.mfietz:fyydlin:v0.1'
}
play {
serviceAccountEmail = '522080222319-compute@developer.gserviceaccount.com'
pk12File = file('../serviceaccount-c3d7d0f61387.p12')
}
// about.html is templatized so that we can automatically insert
// our version string in to it at build time.
task filterAbout {
inputs.files files(["src/main/templates/about.html",
"src/main/AndroidManifest.xml"])
outputs.file "src/main/assets/about.html"
} doLast {
copy {
from "src/main/templates/about.html"
into "src/main/assets"
filter(ReplaceTokens, tokens: [versionname: android.defaultConfig.versionName,
commit : "git rev-parse --short HEAD".execute().text,
year : new Date().format('yyyy')])
}
}
task copyTextFiles(type: Copy) {
from "../CONTRIBUTORS"
from "../LICENSE"
into "src/main/assets/"
rename { String fileName ->
fileName + ".txt"
}
}
preBuild.dependsOn filterAbout, copyTextFiles
allprojects {
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint" << "-Xlint:-deprecation" << "-Xlint:-serial"
}
}
}