ultrasonic-app-subsonic-and.../ultrasonic/build.gradle

166 lines
4.4 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'jacoco'
apply from: "../gradle_scripts/code_quality.gradle"
android {
compileSdkVersion versions.compileSdk
defaultConfig {
applicationId "org.moire.ultrasonic"
versionCode 99
versionName "3.0.0"
minSdkVersion versions.minSdk
targetSdkVersion versions.targetSdk
resConfigs "cs", "de", "en", "es", "fr", "hu", "it", "nl", "pl", "pt", "pt-rBR", "ru", "zh-rCN", "zh-rTW"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'minify/proguard-main.pro',
'minify/proguard-okhttp.pro',
'minify/proguard-retrofit.pro',
'minify/proguard-jackson.pro',
'minify/proguard-kotlin-reflect.pro',
'minify/proguard-kotlin.pro'
}
debug {
minifyEnabled false
multiDexEnabled true
testCoverageEnabled true
applicationIdSuffix ".debug"
}
}
sourceSets {
main.java.srcDirs += "${projectDir}/src/main/kotlin"
test.java.srcDirs += "${projectDir}/src/test/kotlin"
}
packagingOptions {
exclude 'META-INF/LICENSE'
}
lintOptions {
baselineFile file("lint-baseline.xml")
ignore 'MissingTranslation'
ignore 'UnusedQuantity'
warning 'ImpliedQuantity'
disable 'IconMissingDensityFolder', "VectorPath"
abortOnError true
warningsAsErrors true
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
viewBinding true
dataBinding true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kapt {
arguments {
arg("room.schemaLocation", "$buildDir/schemas".toString())
}
}
}
tasks.withType(Test) {
useJUnitPlatform()
}
dependencies {
implementation project(':core:domain')
implementation project(':core:subsonic-api')
api(other.picasso) {
exclude group: "com.android.support"
}
implementation androidSupport.core
implementation androidSupport.support
implementation androidSupport.design
implementation androidSupport.multidex
implementation androidSupport.roomRuntime
implementation androidSupport.roomKtx
implementation androidSupport.viewModelKtx
implementation androidSupport.constraintLayout
implementation androidSupport.preferences
implementation androidSupport.media
implementation androidSupport.navigationFragment
implementation androidSupport.navigationUi
implementation androidSupport.navigationFragmentKtx
implementation androidSupport.navigationUiKtx
implementation androidSupport.navigationFeature
implementation other.kotlinStdlib
implementation other.kotlinxCoroutines
implementation other.koinAndroid
implementation other.okhttpLogging
implementation other.fastScroll
implementation other.colorPickerView
implementation other.rxJava
implementation other.rxAndroid
implementation other.multiType
kapt androidSupport.room
testImplementation other.kotlinReflect
testImplementation testing.junit
testRuntimeOnly testing.junitVintage
testImplementation testing.kotlinJunit
testImplementation testing.kluent
testImplementation testing.mockito
testImplementation testing.mockitoInline
testImplementation testing.mockitoKotlin
testImplementation testing.robolectric
implementation other.timber
}
jacoco {
toolVersion(versions.jacoco)
}
// Excluding all java classes and stuff that should not be covered
ext {
jacocoExclude = [
'**/activity/**',
'**/audiofx/**',
'**/fragment/**',
'**/provider/**',
'**/receiver/**',
'**/service/**',
'**/Test/**',
'**/util/**',
'**/view/**',
'**/R$*.class',
'**/R.class',
'**/BuildConfig.class',
'**/di/**',
'jdk.internal.*'
]
}
jacoco {
toolVersion(versions.jacoco)
}
tasks.withType(Test) {
jacoco.includeNoLocationClasses = true
jacoco.excludes += jacocoExclude
}