You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tasks/app/build.gradle.kts

274 lines
10 KiB
Kotlin

@file:Suppress("UnstableApiUsage")
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
plugins {
id("com.android.application")
id("checkstyle")
id("com.google.gms.google-services")
id("com.google.firebase.crashlytics")
kotlin("android")
kotlin("kapt")
id("dagger.hilt.android.plugin")
id("com.google.android.gms.oss-licenses-plugin")
}
repositories {
mavenCentral()
google()
maven {
url = uri("https://jitpack.io")
content {
includeGroup("com.github.tasks")
includeModule("com.github.bitfireAT", "cert4android")
includeModule("com.github.bitfireAT", "dav4jvm")
includeModule("com.github.tasks.opentasks", "opentasks-provider")
includeModule("com.github.QuadFlask", "colorpicker")
includeModule("com.github.twofortyfouram", "android-plugin-api-for-locale")
includeModule("com.github.franmontiel", "PersistentCookieJar")
}
}
}
android {
bundle {
language {
enableSplit = false
}
}
buildFeatures {
viewBinding = true
dataBinding = true
compose = true
}
lint {
lintConfig = file("lint.xml")
textOutput = File("stdout")
textReport = true
}
compileSdk = 33
defaultConfig {
testApplicationId = "org.tasks.test"
applicationId = "org.tasks"
versionCode = 130200
versionName = "13.2"
targetSdk = 33
minSdk = 24
testInstrumentationRunner = "org.tasks.TestRunner"
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
arg("room.incremental", "true")
}
}
}
signingConfigs {
create("release") {
val tasksKeyAlias: String? by project
val tasksStoreFile: String? by project
val tasksStorePassword: String? by project
val tasksKeyPassword: String? by project
keyAlias = tasksKeyAlias
storeFile = file(tasksStoreFile ?: "none")
storePassword = tasksStorePassword
keyPassword = tasksKeyPassword
}
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
}
kotlinOptions {
jvmTarget = "17"
}
flavorDimensions += listOf("store")
@Suppress("LocalVariableName")
buildTypes {
getByName("debug") {
configure<CrashlyticsExtension> {
mappingFileUploadEnabled = false
}
val tasks_mapbox_key_debug: String? by project
val tasks_google_key_debug: String? by project
val tasks_caldav_url: String? by project
resValue("string", "mapbox_key", tasks_mapbox_key_debug ?: "")
resValue("string", "google_key", tasks_google_key_debug ?: "")
resValue("string", "tasks_caldav_url", tasks_caldav_url ?: "https://caldav.tasks.org")
resValue("string", "tasks_nominatim_url", tasks_caldav_url ?: "https://nominatim.tasks.org")
resValue("string", "tasks_places_url", tasks_caldav_url ?: "https://places.tasks.org")
enableUnitTestCoverage = project.hasProperty("coverage")
}
getByName("release") {
val tasks_mapbox_key: String? by project
val tasks_google_key: String? by project
resValue("string", "mapbox_key", tasks_mapbox_key ?: "")
resValue("string", "google_key", tasks_google_key ?: "")
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard.pro")
signingConfig = signingConfigs.getByName("release")
}
}
productFlavors {
create("generic") {
dimension = "store"
}
create("googleplay") {
dimension = "store"
}
}
packagingOptions {
resources {
excludes += setOf("META-INF/*.kotlin_module")
}
}
namespace = "org.tasks"
}
configure<CheckstyleExtension> {
configFile = project.file("google_checks.xml")
toolVersion = "8.16"
}
configurations.all {
exclude(group = "org.apache.httpcomponents")
exclude(group = "org.checkerframework")
exclude(group = "com.google.code.findbugs")
exclude(group = "com.google.errorprone")
exclude(group = "com.google.j2objc")
exclude(group = "com.google.http-client", module = "google-http-client-apache-v2")
exclude(group = "com.google.http-client", module = "google-http-client-jackson2")
}
val genericImplementation by configurations
val googleplayImplementation by configurations
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.2")
implementation("com.github.bitfireAT:dav4jvm:2.2.1") {
exclude(group = "junit")
}
implementation("com.github.tasks:ical4android:27dc5bf") {
exclude(group = "commons-logging")
exclude(group = "org.json", module = "json")
exclude(group = "org.codehaus.groovy", module = "groovy")
exclude(group = "org.codehaus.groovy", module = "groovy-dateutil")
}
implementation("com.github.bitfireAT:cert4android:7814052")
implementation("com.github.tasks.opentasks:opentasks-provider:562fec5") {
exclude("com.github.tasks.opentasks", "opentasks-contract")
}
implementation("org.dmfs:rfc5545-datetime:0.2.4")
implementation("org.dmfs:lib-recur:0.11.4")
implementation("org.dmfs:jems:1.33")
implementation(libs.dagger.hilt)
kapt(libs.dagger.hilt.compiler)
kapt(libs.androidx.hilt.compiler)
implementation(libs.androidx.hilt.work)
implementation("androidx.fragment:fragment-ktx:1.5.5")
implementation(libs.androidx.lifecycle.runtime)
implementation(libs.androidx.lifecycle.viewmodel)
implementation(libs.androidx.room)
kapt(libs.androidx.room.compiler)
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.paging:paging-runtime:3.1.1")
implementation(libs.bundles.markwon)
debugImplementation(libs.bundles.flipper)
debugImplementation(libs.leakcanary)
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation(libs.kotlin.reflect)
implementation(libs.kotlin.jdk8)
implementation(libs.okhttp)
implementation("com.github.franmontiel:PersistentCookieJar:1.0.1")
implementation("com.google.code.gson:gson:2.10.1")
implementation("com.google.android.material:material:1.8.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("androidx.preference:preference:1.2.0")
implementation("com.jakewharton.timber:timber:5.0.1")
implementation("com.google.android.apps.dashclock:dashclock-api:2.0.0")
implementation("com.github.twofortyfouram:android-plugin-api-for-locale:1.0.2") {
isTransitive = false
}
implementation("com.rubiconproject.oss:jchronic:0.2.6") {
isTransitive = false
}
implementation("me.leolin:ShortcutBadger:1.1.22@aar")
implementation("com.google.apis:google-api-services-tasks:v1-rev20210709-2.0.0")
implementation("com.google.apis:google-api-services-drive:v3-rev20230212-2.0.0")
implementation("com.google.auth:google-auth-library-oauth2-http:0.27.0")
implementation(libs.androidx.work)
implementation("com.etebase:client:2.3.2")
implementation("com.github.QuadFlask:colorpicker:0.0.15")
implementation("net.openid:appauth:0.11.1")
implementation("org.osmdroid:osmdroid-android:6.1.14@aar")
implementation(libs.bundles.retrofit)
implementation("androidx.recyclerview:recyclerview:1.3.0")
implementation(platform(libs.androidx.compose))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.foundation:foundation")
implementation("androidx.compose.material:material")
implementation("androidx.compose.runtime:runtime-livedata")
implementation(libs.compose.theme.adapter)
implementation("androidx.activity:activity-compose:1.6.1")
implementation("androidx.compose.material:material-icons-extended")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.0")
implementation("androidx.compose.ui:ui-viewbinding")
implementation(libs.bundles.coil)
releaseCompileOnly("androidx.compose.ui:ui-tooling")
implementation(libs.accompanist.flowlayout)
implementation(libs.accompanist.permissions)
googleplayImplementation(platform(libs.firebase))
googleplayImplementation("com.google.firebase:firebase-crashlytics")
googleplayImplementation("com.google.firebase:firebase-analytics") {
exclude("com.google.android.gms", "play-services-ads-identifier")
}
googleplayImplementation("com.google.firebase:firebase-config-ktx")
googleplayImplementation("com.google.android.gms:play-services-location:19.0.1")
googleplayImplementation("com.google.android.gms:play-services-maps:18.1.0")
googleplayImplementation("com.android.billingclient:billing-ktx:4.1.0")
googleplayImplementation("com.google.android.play:core:1.10.3")
googleplayImplementation("com.google.android.play:core-ktx:1.8.1")
googleplayImplementation("com.google.android.gms:play-services-oss-licenses:17.0.0")
androidTestImplementation(libs.dagger.hilt.testing)
kaptAndroidTest(libs.dagger.hilt.compiler)
kaptAndroidTest(libs.androidx.hilt.compiler)
androidTestImplementation(libs.mockito.android)
androidTestImplementation(libs.make.it.easy)
androidTestImplementation(libs.androidx.test.runner)
androidTestImplementation(libs.androidx.test.rules)
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation(libs.okhttp.mockwebserver)
testImplementation("junit:junit:4.13.2")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4")
testImplementation(libs.make.it.easy)
testImplementation(libs.androidx.test.core)
testImplementation(libs.mockito.core)
testImplementation("org.ogce:xpp3:1.1.6")
}