| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- import com.google.protobuf.gradle.*
- plugins {
- alias(libs.plugins.agp.app)
- alias(libs.plugins.kotlin)
- alias(libs.plugins.protobuf)
- alias(libs.plugins.lsplugin.resopt)
- alias(libs.plugins.lsplugin.jgit)
- alias(libs.plugins.lsplugin.apksign)
- alias(libs.plugins.lsplugin.apktransform)
- alias(libs.plugins.lsplugin.cmaker)
- }
- val appVerCode = jgit.repo()?.commitCount("refs/remotes/origin/master") ?: 0
- val appVerName: String by rootProject
- apksign {
- storeFileProperty = "releaseStoreFile"
- storePasswordProperty = "releaseStorePassword"
- keyAliasProperty = "releaseKeyAlias"
- keyPasswordProperty = "releaseKeyPassword"
- }
- apktransform {
- copy {
- when (it.buildType) {
- "release" -> file("${it.name}/BiliRoaming_${appVerName}.apk")
- else -> null
- }
- }
- }
- cmaker {
- default {
- targets("biliroaming")
- abiFilters("armeabi-v7a", "arm64-v8a", "x86")
- arguments += arrayOf(
- "-DANDROID_STL=none",
- "-DCMAKE_CXX_STANDARD=23",
- "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON",
- )
- cFlags += "-flto"
- cppFlags += "-flto"
- }
- buildTypes {
- arguments += "-DDEBUG_SYMBOLS_PATH=${layout.buildDirectory.file("symbols/${it.name}").get().asFile.absolutePath}"
- }
- }
- android {
- namespace = "me.iacn.biliroaming"
- compileSdk = 35
- buildToolsVersion = "35.0.0"
- ndkVersion = "29.0.14206865"
- buildFeatures {
- prefab = true
- buildConfig = true
- }
- defaultConfig {
- applicationId = "me.iacn.biliroaming"
- minSdk = 24
- targetSdk = 35 // Target Android U
- versionCode = appVerCode
- versionName = appVerName
- }
- buildTypes {
- release {
- isMinifyEnabled = true
- isShrinkResources = true
- proguardFiles("proguard-rules.pro")
- }
- }
- compileOptions {
- sourceCompatibility(JavaVersion.VERSION_11)
- targetCompatibility(JavaVersion.VERSION_11)
- }
- kotlinOptions {
- jvmTarget = "11"
- freeCompilerArgs = listOf(
- "-Xno-param-assertions",
- "-Xno-call-assertions",
- "-Xno-receiver-assertions",
- "-language-version=2.0",
- )
- }
- sourceSets {
- named("main") {
- proto {
- srcDir("src/main/proto")
- include("**/*.proto")
- }
- }
- }
- packaging {
- resources {
- excludes += "**"
- }
- }
- lint {
- checkReleaseBuilds = false
- }
- dependenciesInfo {
- includeInApk = false
- }
- androidResources {
- additionalParameters += arrayOf("--allow-reserved-package-id", "--package-id", "0x23")
- }
- externalNativeBuild {
- cmake {
- path("src/main/jni/CMakeLists.txt")
- version = "4.1.0+"
- }
- }
- }
- protobuf {
- protoc {
- artifact = libs.protobuf.protoc.get().toString()
- }
- generateProtoTasks {
- all().forEach { task ->
- task.builtins {
- id("java") {
- option("lite")
- }
- id("kotlin") {
- option("lite")
- }
- }
- }
- }
- }
- configurations.all {
- exclude("org.jetbrains.kotlin", "kotlin-stdlib-jdk7")
- exclude("org.jetbrains.kotlin", "kotlin-stdlib-jdk8")
- }
- dependencies {
- compileOnly(libs.xposed)
- implementation(libs.protobuf.kotlin)
- implementation(libs.protobuf.java)
- compileOnly(libs.protobuf.protoc)
- implementation(libs.kotlin.stdlib)
- implementation(libs.kotlin.coroutines.android)
- implementation(libs.kotlin.coroutines.jdk)
- implementation(libs.androidx.documentfile)
- implementation(libs.cxx)
- implementation(libs.okhttp)
- }
- val adbExecutable: String = androidComponents.sdkComponents.adb.get().asFile.absolutePath
- val restartBiliBili = task("restartBiliBili").apply {
- doLast {
- exec {
- commandLine(adbExecutable, "shell", "am", "force-stop", "tv.danmaku.bili")
- }
- exec {
- commandLine(
- adbExecutable,
- "shell",
- "am",
- "start",
- "$(pm resolve-activity --components tv.danmaku.bili)"
- )
- }
- }
- }
- afterEvaluate {
- tasks.getByPath("installDebug").finalizedBy(restartBiliBili)
- }
|