Kore/app/build.gradle

135 lines
4.4 KiB
Groovy
Raw Normal View History

2015-01-14 12:12:47 +01:00
apply plugin: 'com.android.application'
def getVersionName = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'describe', '--tags'
standardOutput = stdout
}
return stdout.toString().trim()
}
2015-01-14 12:12:47 +01:00
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
2015-01-14 12:12:47 +01:00
defaultConfig {
applicationId "org.xbmc.kore"
2015-01-14 12:12:47 +01:00
minSdkVersion 15
targetSdkVersion 23
2015-12-16 20:52:10 +01:00
versionCode 13
versionName = getVersionName()
2015-01-14 12:12:47 +01:00
}
File keystoreFile = file('keystore.properties')
2015-01-14 12:12:47 +01:00
signingConfigs {
release {
if (keystoreFile.exists()) {
def Properties keyProps = new Properties()
keyProps.load(new FileInputStream(keystoreFile))
2015-01-14 12:12:47 +01:00
storeFile file(keyProps["store"])
keyAlias keyProps["alias"]
storePassword keyProps["storePass"]
keyPassword keyProps["pass"]
}
2015-01-14 12:12:47 +01:00
}
}
productFlavors {
full {
}
instrumentationTest {
applicationId "org.xbmc.kore.instrumentationtest"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
2015-01-14 12:12:47 +01:00
buildTypes {
// debug {
// minifyEnabled true
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// }
release {
if (keystoreFile.exists()) {
signingConfig signingConfigs.release
}
2015-01-14 12:12:47 +01:00
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
// Too much trouble keeping all translations in sync
disable 'MissingTranslation'
// okio generates a lint error which should be ignored. Demote it to warning
// See https://github.com/square/okio/issues/58
warning 'InvalidPackage'
}
2015-03-09 23:05:58 +01:00
// allprojects {
// gradle.projectsEvaluated {
// tasks.withType(JavaCompile) {
// options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
// }
// }
// }
2015-01-14 12:12:47 +01:00
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
}
dependencies {
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'
compile 'com.android.support:support-v13:23.4.0'
2015-01-14 12:12:47 +01:00
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.2'
compile 'com.jakewharton:butterknife:6.1.0'
compile 'com.squareup.okhttp:okhttp:2.3.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'de.greenrobot:eventbus:2.4.0'
2015-01-14 12:12:47 +01:00
compile 'javax.jmdns:jmdns:3.4.1'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.melnykov:floatingactionbutton:1.3.0'
2015-01-14 12:12:47 +01:00
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2'
androidTestCompile 'com.android.support:support-v13:23.4.0'
2015-01-14 12:12:47 +01:00
compile fileTree(dir: 'libs', include: ['*.jar'])
}
// Get the path to ADB. Required when running tests directly from Android Studio.
// Source: http://stackoverflow.com/a/26771087/112705
def adb = android.getAdbExe().toString()
// Source: http://stackoverflow.com/q/29908110/112705
afterEvaluate {
task grantAnimationPermissionDev(type: Exec, dependsOn: 'installInstrumentationTestDebug') {
println("Executing: $adb shell pm grant $android.productFlavors.instrumentationTest.applicationId android.permission.SET_ANIMATION_SCALE")
commandLine "$adb shell pm grant $android.productFlavors.instrumentationTest.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
}
// When launching individual tests from Android Studio, it seems that only the assemble tasks
// get called directly, not the install* versions
tasks.each { task ->
if (task.name.startsWith('assembleInstrumentationTestDebugAndroidTest')) {
task.dependsOn grantAnimationPermissionDev
}
}
}