Mercury-IM/app/build.gradle
2019-05-04 00:27:02 +02:00

122 lines
4.3 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'checkstyle'
android {
compileSdkVersion 28
defaultConfig {
applicationId "org.olomono.messenger"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
disable 'GoogleAppIndexingWarning', 'AllowBackup'
// Warn about invalid packages instead of failing
warning 'InvalidPackage'
}
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
dataBinding {
enabled true
}
}
checkstyle {
toolVersion = '8.17'
configFile = rootProject.file('config/checkstyle/checkstyle.xml')
}
task checkstyleMain(type: Checkstyle) {
source 'src/main/java'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
task checkstyleTest(type: Checkstyle) {
source 'src/test/java'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
task checkstyleAndroidTest(type: Checkstyle) {
source 'src/androidTest/java'
include '**/*.java'
exclude '**/gen/**'
classpath = files()
}
check.configure {
dependsOn(checkstyleMain)
// dependsOn(checkstyleTest)
// dependsOn(checkstyleAndroidTest)
}
// Dependency versions are located in version.gradle
dependencies {
// architecture components for database and lifecycle management
implementation "android.arch.lifecycle:extensions:$archCompVersion"
implementation "android.arch.persistence.room:runtime:$archCompVersion"
implementation "android.arch.lifecycle:extensions:$archCompVersion"
annotationProcessor "android.arch.lifecycle:compiler:$archCompVersion"
annotationProcessor "android.arch.persistence.room:compiler:$archCompVersion"
// Dagger 2 for dependency injection
implementation "com.google.dagger:dagger:$daggerVersion"
annotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
// support libraries
implementation "com.android.support:appcompat-v7:$supportLibVersion"
implementation "com.android.support:design:$supportLibVersion"
implementation "com.android.support:support-v4:$supportLibVersion"
implementation "com.android.support:support-vector-drawable:$supportLibVersion"
implementation "com.android.support:cardview-v7:$supportLibVersion"
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// circular image viewer for avatars
implementation 'de.hdodenhof:circleimageview:2.2.0'
// Smack
// Not all of those are needed, but it may be a good idea to define those versions explicitly
implementation "org.igniterealtime.smack:smack-android:$smackAndroidVersion"
implementation "org.igniterealtime.smack:smack-android-extensions:$smackAndroidExtensionsVersion"
implementation "org.igniterealtime.smack:smack-core:$smackCoreVersion"
implementation "org.igniterealtime.smack:smack-experimental:$smackExperimentalVersion"
implementation "org.igniterealtime.smack:smack-extensions:$smackExtensionsVersion"
implementation "org.igniterealtime.smack:smack-im:$smackImVersion"
implementation "org.igniterealtime.smack:smack-omemo:$smackOmemoVersion"
implementation "org.igniterealtime.smack:smack-omemo-signal:$smackOmemoSignalVersion"
implementation "org.igniterealtime.smack:smack-openpgp:$smackOpenPGPVersion"
implementation "org.igniterealtime.smack:smack-resolver-minidns:$smackResolverMiniDnsVersion"
implementation "org.igniterealtime.smack:smack-tcp:$smackTcpVersion"
// Exclude XmlPullParser from Smack dependencies, as its now provided by Android
// https://stackoverflow.com/questions/48488563/gradle-xpp3-error/48746294#48746294
configurations {
all*.exclude group: 'xpp3', module: 'xpp3'
}
}