____ _ _______ __
/ __ \ | /| / / __/ |/ /
/ /_/ / |/ |/ / _// /
\____/|__/|__/___/_||_/
owenclave / app/build.gradle.kts
plugins {
id("com.android.application")
id("kotlin-parcelize")
alias(libs.plugins.protobuf)
alias(libs.plugins.ksp)
alias(libs.plugins.aboutlibraries)
alias(libs.plugins.compose.compiler)
}
setupApp()
android {
namespace = "io.nekohasekai.sagernet"
signingConfigs {
create("release") {
storeFile = file(System.getenv("KEYSTORE_PATH") ?: "../owenclave.jks")
storePassword = System.getenv("KEYSTORE_PASSWORD") ?: "owenclave"
keyAlias = System.getenv("KEY_ALIAS") ?: "owenclave"
keyPassword = System.getenv("KEY_PASSWORD") ?: "owenclave"
}
}
}
android.buildTypes["release"].signingConfig = android.signingConfigs["release"]
ksp {
arg("room.incremental", "true")
arg("room.schemaLocation", "$projectDir/schemas")
}
aboutLibraries {
offlineMode = true
collect {
configPath = file("src/main/aboutlibraries")
includePlatform = true
}
export {
outputFile = file("src/main/res/raw/aboutlibraries.json")
excludeFields.addAll("name", "description", "developers", "funding", "licenses", "organization", "scm", "website", "License")
prettyPrint = true
}
}
dependencies {
implementation(fileTree("libs"))
implementation(project(":library:proto-stub"))
implementation(libs.kotlinx.coroutines.android)
implementation(libs.core.ktx)
implementation(libs.activity.ktx)
implementation(libs.fragment.ktx)
implementation(libs.camera.view)
implementation(libs.camera.lifecycle)
implementation(libs.camera.camera2)
implementation(libs.swiperefreshlayout)
implementation(libs.appcompat)
implementation(libs.preference)
implementation(libs.flexbox)
implementation(libs.work.runtime.ktx)
implementation(libs.work.multiprocess)
implementation(libs.room.runtime)
ksp(libs.room.compiler)
implementation(libs.room.ktx)
implementation(libs.material)
implementation(libs.gson)
implementation(libs.zxing.core)
implementation(libs.snakeyaml)
implementation(libs.material.about.library)
implementation(libs.process.phoenix)
implementation(libs.kryo)
implementation(libs.jini.lib)
implementation(libs.markwon.core)
implementation(libs.recyclerview.fastscroll) {
exclude(group = "androidx.recyclerview")
exclude(group = "androidx.appcompat")
}
implementation(libs.editorkit)
implementation(libs.editorkit.language.json)
coreLibraryDesugaring(libs.desugar.jdk.libs)
// Jetpack Compose
implementation(platform(libs.compose.bom))
implementation(libs.compose.ui)
implementation(libs.compose.ui.graphics)
implementation(libs.compose.ui.tooling.preview)
implementation(libs.compose.foundation)
implementation(libs.compose.material3)
implementation(libs.compose.material3.window.size)
implementation(libs.compose.graphics.shapes)
implementation(libs.compose.material.icons.extended)
debugImplementation(libs.compose.ui.tooling)
implementation(libs.activity.compose)
implementation(libs.lifecycle.runtime.compose)
implementation(libs.lifecycle.viewmodel.compose)
implementation(libs.navigation.compose)
}