Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

206 lines
6.2 KiB
Kotlin

import java.util.Properties
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.jetbrains.kotlin.compose)
alias(libs.plugins.jetbrains.kotlin.serialization)
alias(libs.plugins.apollo)
alias(libs.plugins.google.devtools.ksp)
alias(libs.plugins.google.dagger.hilt.android)
alias(libs.plugins.androidx.baselineprofile)
}
val appPackageName = "com.axiel7.anihyou"
val versionProps = Properties().also {
it.load(project.rootProject.file("version.properties").reader())
}
android {
namespace = appPackageName
compileSdk = 35
defaultConfig {
applicationId = appPackageName
minSdk = 23
targetSdk = 35
versionCode = versionProps.getProperty("code").toInt()
versionName = versionProps.getProperty("name")
setProperty("archivesBaseName", "anihyou-$versionName")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
resourceConfigurations.addAll(
listOf(
"en",
"ja-rJP",
"ru-rRU",
"es-rES",
"tr-rTR",
"pt-rBR",
"ar-rSA",
"in-rID",
"it-rIT",
"uk-rUA",
"pl-rPL",
"az-rAZ",
"de-rDE",
"zh-rCN",
"fr-rFR"
)
)
vectorDrawables {
useSupportLibrary = true
}
}
buildTypes {
val clientId = "8527"
val malClientId = "\"9d64c3963e0f5de53083571d45016565\""
debug {
applicationIdSuffix = ".debug"
versionNameSuffix = "-DEBUG"
isDebuggable = true
isMinifyEnabled = false
isShrinkResources = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
buildConfigField("int", "CLIENT_ID", clientId)
buildConfigField("String", "MAL_CLIENT_ID", malClientId)
resValue("string", "app_name", "AniHyou Debug")
}
release {
isDebuggable = false
isMinifyEnabled = true
isShrinkResources = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
buildConfigField("int", "CLIENT_ID", clientId)
buildConfigField("String", "MAL_CLIENT_ID", malClientId)
}
}
splits {
abi {
isEnable = true
reset()
include("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
isUniversalApk = true
}
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
buildConfig = true
aidl = false
renderScript = false
shaders = false
}
androidResources {
aaptOptions.cruncherEnabled = false
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
dependenciesInfo {
includeInApk = false
}
baselineProfile {
dexLayoutOptimization = true
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.lifecycle.runtime.compose)
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.work.runtime)
implementation(libs.androidx.core.splashscreen)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.glance.appwidget)
implementation(libs.androidx.glance.preview)
implementation(libs.androidx.glance.appwidget.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.material3.window.sizeclass)
implementation(libs.androidx.navigation.compose)
implementation(libs.accompanist.permissions)
implementation(libs.placeholder.material3)
implementation(libs.material.kolor)
implementation(libs.coil.compose)
implementation(libs.coil.gif)
implementation(libs.coil.network.okhttp)
implementation(libs.apollo.runtime)
implementation(libs.apollo.normalized.cache)
implementation(libs.compose.markdown)
implementation(libs.hilt.android)
ksp(libs.hilt.android.compiler)
ksp(libs.androidx.hilt.compiler)
implementation(libs.androidx.hilt.navigation.compose)
implementation(libs.androidx.hilt.work)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)
implementation(libs.kotlinx.serialization.json)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.ui.test.junit4)
debugImplementation(libs.ui.tooling)
debugImplementation(libs.ui.test.manifest)
coreLibraryDesugaring(libs.desugar.jdk.libs)
implementation(libs.androidx.profileinstaller)
"baselineProfile"(project(":baselineprofile"))
}
apollo {
generateSourcesDuringGradleSync.set(false)
service("service") {
packageName.set(appPackageName)
generateFragmentImplementations.set(true)
mapScalarToKotlinInt("FuzzyDateInt")
mapScalar(
"CountryCode",
"com.axiel7.anihyou.data.model.media.CountryOfOrigin",
"com.axiel7.anihyou.data.model.media.CountryOfOrigin.countryOfOriginAdapter",
)
introspection {
endpointUrl.set("https://graphql.anilist.co")
schemaFile.set(file("src/main/graphql/schema.graphqls"))
}
}
}