mirror of
https://github.com/osfans/trime.git
synced 2026-11-08 01:16:38 +08:00
183 lines
5.6 KiB
Plaintext
183 lines
5.6 KiB
Plaintext
/*
|
|
* SPDX-FileCopyrightText: 2015 - 2025 Rime community
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
@file:Suppress("UnstableApiUsage")
|
|
|
|
plugins {
|
|
id("com.osfans.trime.app-convention")
|
|
id("com.osfans.trime.native-app-convention")
|
|
id("com.osfans.trime.data-checksums")
|
|
id("com.osfans.trime.native-cache-hash")
|
|
id("com.osfans.trime.opencc-data")
|
|
alias(libs.plugins.aboutlibraries)
|
|
alias(libs.plugins.kotlin.serialization)
|
|
alias(libs.plugins.kotlin.parcelize)
|
|
alias(libs.plugins.ksp)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.osfans.trime"
|
|
compileSdk = 37
|
|
buildToolsVersion = "37.0.0"
|
|
|
|
defaultConfig {
|
|
applicationId = "com.osfans.trime"
|
|
minSdk = 26
|
|
targetSdk = 37
|
|
versionCode = 20270101
|
|
versionName = "3.3.14"
|
|
|
|
multiDexEnabled = true
|
|
buildConfigField("String", "BUILDER", "\"${project.builder}\"")
|
|
buildConfigField("long", "BUILD_TIMESTAMP", project.buildTimestamp)
|
|
buildConfigField("String", "BUILD_COMMIT_HASH", "\"${project.buildCommitHash}\"")
|
|
buildConfigField("String", "BUILD_GIT_REPO", "\"${project.buildGitRepo}\"")
|
|
buildConfigField("String", "BUILD_VERSION_NAME", "\"${project.buildVersionName}\"")
|
|
}
|
|
|
|
base {
|
|
// https://www.norio.be/blog/archivesBaseName-removed-from-gradle9.html
|
|
archivesName = "${android.defaultConfig.applicationId}-$buildVersionName"
|
|
}
|
|
|
|
buildFeatures {
|
|
buildConfig = true
|
|
viewBinding = true
|
|
resValues = true
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = true
|
|
isShrinkResources = true
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro",
|
|
)
|
|
signingConfig =
|
|
project.signKeyFile?.let {
|
|
signingConfigs.create("release") {
|
|
storeFile = it
|
|
storePassword = project.signKeyStorePwd
|
|
keyAlias = project.signKeyAlias
|
|
keyPassword = project.signKeyPwd
|
|
}
|
|
}
|
|
|
|
resValue("string", "trime_app_name", "@string/app_name_release")
|
|
}
|
|
debug {
|
|
applicationIdSuffix = ".debug"
|
|
|
|
resValue("string", "trime_app_name", "@string/app_name_debug")
|
|
}
|
|
all {
|
|
// remove META-INF/version-control-info.textproto
|
|
@Suppress("UnstableApiUsage")
|
|
vcsInfo.include = false
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_11
|
|
targetCompatibility = JavaVersion.VERSION_11
|
|
}
|
|
|
|
testOptions {
|
|
unitTests.all {
|
|
it.useJUnitPlatform()
|
|
}
|
|
}
|
|
|
|
dependenciesInfo {
|
|
includeInApk = false
|
|
includeInBundle = false
|
|
}
|
|
|
|
packaging {
|
|
resources {
|
|
excludes +=
|
|
setOf(
|
|
"/META-INF/*.version",
|
|
"/META-INF/*.kotlin_module", // cannot be excluded actually
|
|
"/META-INF/androidx/**",
|
|
"/DebugProbesKt.bin",
|
|
"/kotlin-tooling-metadata.json",
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
aboutLibraries {
|
|
collect {
|
|
configPath.set(file("licenses").takeIf { it.exists() })
|
|
fetchRemoteLicense.set(false)
|
|
fetchRemoteFunding.set(false)
|
|
includePlatform.set(false)
|
|
}
|
|
export {
|
|
excludeFields.set(
|
|
setOf("generated", "developers", "organization", "scm", "funding", "content"),
|
|
)
|
|
}
|
|
}
|
|
|
|
ksp {
|
|
arg("room.schemaLocation", "$projectDir/schemas")
|
|
}
|
|
|
|
dependencies {
|
|
ksp(project(":codegen"))
|
|
implementation(libs.kotlinx.coroutines)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.androidx.activity)
|
|
implementation(libs.androidx.appcompat)
|
|
implementation(libs.androidx.autofill)
|
|
implementation(libs.androidx.constraintlayout)
|
|
implementation(libs.androidx.core)
|
|
implementation(libs.androidx.navigation.fragment)
|
|
implementation(libs.androidx.navigation.ui)
|
|
implementation(libs.androidx.paging.runtime.ktx)
|
|
implementation(libs.androidx.preference)
|
|
implementation(libs.androidx.recyclerview)
|
|
ksp(libs.androidx.room.compiler)
|
|
implementation(libs.androidx.room.runtime)
|
|
implementation(libs.androidx.room.ktx)
|
|
implementation(libs.androidx.room.paging)
|
|
implementation(libs.androidx.viewpager2)
|
|
implementation(libs.androidx.work.runtime.ktx)
|
|
implementation(libs.flexbox)
|
|
implementation(libs.bravh)
|
|
implementation(libs.timber)
|
|
implementation(libs.xxpermissions)
|
|
implementation(libs.kodein.di)
|
|
implementation(libs.kaml)
|
|
implementation(libs.storageaccess)
|
|
implementation(libs.splitties.bitflags)
|
|
implementation(libs.splitties.systemservices)
|
|
implementation(libs.splitties.views.dsl)
|
|
implementation(libs.splitties.views.dsl.constraintlayout)
|
|
implementation(libs.splitties.views.dsl.coordinatorlayout)
|
|
implementation(libs.splitties.views.dsl.recyclerview)
|
|
implementation(libs.splitties.views.recyclerview)
|
|
implementation(libs.aboutlibraries.core)
|
|
implementation(libs.iconics.core)
|
|
implementation(libs.community.material.typeface) {
|
|
artifact { type = "aar" }
|
|
}
|
|
|
|
// Testing
|
|
testImplementation(libs.junit)
|
|
testImplementation(libs.kotest.runner.junit5)
|
|
testImplementation(libs.kotest.assertions.core)
|
|
androidTestImplementation(libs.junit)
|
|
}
|
|
|
|
configurations {
|
|
all {
|
|
// remove Baseline Profile Installer or whatever it is...
|
|
exclude(group = "androidx.profileinstaller", module = "profileinstaller")
|
|
}
|
|
}
|