Files
TachideskJUI/android/build.gradle.kts
2023-07-03 21:20:32 -04:00

143 lines
4.1 KiB
Kotlin

import Config.migrationCode
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
id(libs.plugins.kotlin.android.get().pluginId)
id(libs.plugins.android.application.get().pluginId)
id(libs.plugins.ksp.get().pluginId)
id(libs.plugins.compose.get().pluginId)
id(libs.plugins.kotlinter.get().pluginId)
id(libs.plugins.aboutLibraries.get().pluginId)
}
dependencies {
implementation(projects.core)
implementation(projects.i18n)
implementation(projects.domain)
implementation(projects.data)
implementation(projects.uiCore)
implementation(projects.presentation)
// UI (Compose)
implementation(libs.bundles.compose.android)
implementation(libs.voyager.core)
implementation(libs.voyager.navigation)
implementation(libs.voyager.transitions)
implementation(libs.voyager.androidx)
implementation(libs.accompanist.pager)
implementation(libs.accompanist.pagerIndicators)
implementation(libs.accompanist.flowLayout)
implementation(libs.accompanist.systemUIController)
implementation(libs.imageloader.core)
implementation(libs.imageloader.moko)
implementation(libs.materialDialogs.core)
// Android
implementation(libs.androidx.core)
implementation(libs.androidx.appCompat)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.work)
// Android Lifecycle
implementation(libs.lifecycle.common)
implementation(libs.lifecycle.process)
implementation(libs.lifecycle.runtime)
// Threading
implementation(libs.coroutines.core)
implementation(libs.coroutines.android)
// Json
implementation(libs.serialization.json.core)
implementation(libs.serialization.json.okio)
// Dependency Injection
implementation(libs.kotlinInject.runtime)
ksp(libs.kotlinInject.compiler)
// Http client
implementation(libs.ktor.core)
implementation(libs.ktor.okHttp)
implementation(libs.ktor.contentNegotiation)
implementation(libs.ktor.serialization.json)
implementation(libs.ktor.logging)
implementation(libs.ktor.websockets)
implementation(libs.ktor.auth)
// Ktorfit
implementation(libs.ktorfit.lib)
ksp(libs.ktorfit.ksp)
// Logging
implementation(libs.logging.kmlogging)
// Storage
implementation(libs.okio)
// Preferences
implementation(libs.multiplatformSettings.core)
implementation(libs.multiplatformSettings.serialization)
implementation(libs.multiplatformSettings.coroutines)
// Utility
implementation(libs.dateTime)
implementation(libs.immutableCollections)
implementation(libs.kds)
// Localization
implementation(libs.moko.core)
implementation(libs.moko.compose)
// Testing
testImplementation(kotlin("test-junit"))
testImplementation(libs.compose.ui.test.junit4)
testImplementation(libs.coroutines.test)
}
android {
namespace = "ca.gosyer.jui.android"
defaultConfig {
applicationId = "ca.gosyer.jui.android"
versionCode = migrationCode
versionName = version.toString()
buildConfigField("boolean", "IS_PREVIEW", project.hasProperty("preview").toString())
buildConfigField("int", "PREVIEW_BUILD", project.properties["preview"]?.toString()?.trim('"') ?: 0.toString())
}
buildTypes {
getByName("debug") {
applicationIdSuffix = ".debug"
}
getByName("release") {
isMinifyEnabled = true
isShrinkResources = true
setProguardFiles(listOf(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"))
}
}
buildFeatures {
buildConfig = true
}
packaging {
resources.excludes.addAll(listOf(
"META-INF/DEPENDENCIES",
"LICENSE.txt",
"META-INF/LICENSE",
"META-INF/LICENSE.txt",
"META-INF/LICENSE.md",
"META-INF/LICENSE-notice.md",
"META-INF/README.md",
"META-INF/NOTICE",
"META-INF/*.kotlin_module",
"META-INF/*.version",
))
}
}
kotlin {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(Config.androidJvmTarget.majorVersion))
}
}