Select Git revision
build.gradle.kts
-
Janne Mareike Koschinski authored
Signed-off-by:
Janne Koschinski <janne@kuschku.de>
Janne Mareike Koschinski authoredSigned-off-by:
Janne Koschinski <janne@kuschku.de>
build.gradle.kts 6.85 KiB
/*
* Quasseldroid - Quassel client for Android
*
* Copyright (c) 2018 Janne Koschinski
* Copyright (c) 2018 The Quassel Project
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 3 as published
* by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import org.gradle.api.Project
import java.io.FileInputStream
import java.util.*
import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.kotlin.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KaptExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.ByteArrayOutputStream
import java.util.*
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
}
android {
compileSdkVersion(27)
buildToolsVersion("27.0.3")
signingConfigs {
val signing = project.rootProject.properties("signing.properties")
if (signing != null) {
create("default") {
storeFile = file(signing.getProperty("storeFile"))
storePassword = signing.getProperty("storePassword")
keyAlias = signing.getProperty("keyAlias")
keyPassword = signing.getProperty("keyPassword")
}
}
}
defaultConfig {
minSdkVersion(16)
targetSdkVersion(27)
applicationId = "com.iskrembilen.quasseldroid"
versionCode = cmd("git", "rev-list", "--count", "HEAD")?.toIntOrNull() ?: 1
versionName = cmd("git", "describe", "--always", "--tags", "HEAD") ?: "1.0.0"
buildConfigField("String", "GIT_HEAD", "\"${cmd("git", "rev-parse", "HEAD") ?: ""}\"")
buildConfigField("long", "GIT_COMMIT_DATE", "${cmd("git", "show", "-s", "--format=%ct") ?: 0}L")
signingConfig = signingConfigs.findByName("default")
resConfigs("de", "en")
vectorDrawables.useSupportLibrary = true
setProperty("archivesBaseName", "Quasseldroid-$versionName")
multiDexEnabled = false
// Disable test runner analytics
testInstrumentationRunnerArguments = mapOf(
"disableAnalytics" to "true"
)
}
buildTypes {
getByName("release") {
isZipAlignEnabled = true
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
}
getByName("debug") {
applicationIdSuffix = "debug"
isZipAlignEnabled = true
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
}
}
lintOptions {
isWarningsAsErrors = true
setLintConfig(file("../lint.xml"))
}
}
dependencies {
implementation(kotlin("stdlib", "1.2.41"))
// App Compat
withVersion("27.1.1") {
implementation("com.android.support", "appcompat-v7", version)
implementation("com.android.support", "design", version)
implementation("com.android.support", "customtabs", version)
implementation("com.android.support", "cardview-v7", version)
implementation("com.android.support", "recyclerview-v7", version)
implementation("com.android.support", "preference-v7", version)
implementation("com.android.support", "preference-v14", version)
}
implementation("com.android.support.constraint", "constraint-layout", "1.1.0-beta6")
// App Arch Lifecycle
withVersion("1.1.1") {
implementation("android.arch.lifecycle", "extensions", version)
implementation("android.arch.lifecycle", "reactivestreams", version)
kapt("android.arch.lifecycle", "compiler", version)
}
// App Arch Persistence
withVersion("1.1.0-rc1") {
implementation("android.arch.persistence.room", "runtime", version)
implementation("android.arch.persistence.room", "rxjava2", version)
kapt("android.arch.persistence.room", "compiler", version)
testImplementation("android.arch.persistence.room", "testing", version)
}
// App Arch Paging
implementation("android.arch.paging", "runtime", "1.0.0-rc1") {
exclude(group = "junit", module = "junit")
}
// Utility
implementation("io.reactivex.rxjava2", "rxandroid", "2.0.2")
implementation("io.reactivex.rxjava2", "rxjava", "2.1.9")
implementation("org.threeten", "threetenbp", "1.3.6", classifier = "no-tzdb")
implementation("org.jetbrains", "annotations", "16.0.1")
implementation("com.google.code.gson", "gson", "2.8.2")
implementation("commons-codec", "commons-codec", "1.11")
implementation("com.squareup.retrofit2", "retrofit", "2.4.0")
implementation("com.squareup.retrofit2", "converter-gson", "2.4.0")
withVersion("8.8.1") {
implementation("com.jakewharton", "butterknife", version)
kapt("com.jakewharton", "butterknife-compiler", version)
}
// Quassel
implementation(project(":viewmodel"))
implementation(project(":persistence"))
implementation(project(":lib")) {
exclude(group = "org.threeten", module = "threetenbp")
}
// UI
implementation("me.zhanghai.android.materialprogressbar", "library", "1.4.2")
withVersion("0.9.6.0") {
implementation("com.afollestad.material-dialogs", "core", version)
implementation("com.afollestad.material-dialogs", "commons", version)
}
withVersion("4.6.1") {
implementation("com.github.bumptech.glide", "glide", version)
implementation("com.github.bumptech.glide", "recyclerview-integration", version)
kapt("com.github.bumptech.glide", "compiler", version)
}
implementation(project(":slidingpanel"))
// Quality Assurance
implementation(project(":malheur"))
withVersion("1.5.4") {
debugImplementation("com.squareup.leakcanary", "leakcanary-android", version)
releaseImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
testImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
androidTestImplementation("com.squareup.leakcanary", "leakcanary-android-no-op", version)
}
// Dependency Injection
withVersion("2.15") {
implementation("com.google.dagger", "dagger", version)
kapt("com.google.dagger", "dagger-compiler", version)
kapt("com.google.dagger", "dagger-android-processor", version)
implementation("com.google.dagger", "dagger-android", version)
implementation("com.google.dagger", "dagger-android-support", version)
}
testImplementation("junit", "junit", "4.12")
withVersion("1.0.1") {
androidTestImplementation("com.android.support.test", "runner", version)
androidTestImplementation("com.android.support.test", "rules", version)
}
androidTestImplementation("com.android.support.test.espresso", "espresso-core", "3.0.1")
}