summaryrefslogtreecommitdiff
path: root/src/android/app/build.gradle.kts
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2025-01-13 15:17:39 +1000
committerZephyron <zephyron@citron-emu.org>2025-01-13 15:17:39 +1000
commit6d5475a9cf51feb36bb1a45d88b51182ede4a1f8 (patch)
treecd1b0e93152d7fb5f59408495a0a4aad10f4bd66 /src/android/app/build.gradle.kts
parent2d7f9d921b3508a5c5effba5604aaea5620441ef (diff)
Android: Update build system and dependencies
- Update Gradle from 8.1 to 8.10.2 - Update Android Gradle Plugin from 8.1.2 to 8.8.0 - Update Kotlin from 1.9.20 to 2.1.20-Beta1 - Update various AndroidX dependencies to latest versions - Update NDK from 26.1 to 27.2 (with RC1/RC2 options commented) - Update Java target from 17 to 21 - Update Android target SDK from 34 to 35 - Enable additional optimizations in release builds: - Enable shrinkResources - Use proguard-android-optimize.txt - Disable JNI debugging - Replace vector drawables with PNG for ic_citron - Comment out unused ComputeInline constant in dma_pusher.cpp - Update Gradle wrapper and configuration files This updates the Android build system and dependencies to their latest versions while enabling additional optimizations for release builds. The ic_citron icon was converted from vector to PNG format for better compatibility.
Diffstat (limited to 'src/android/app/build.gradle.kts')
-rw-r--r--src/android/app/build.gradle.kts56
1 files changed, 29 insertions, 27 deletions
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index 4965b9564..793a8621c 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -10,10 +10,10 @@ plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-parcelize")
- kotlin("plugin.serialization") version "1.9.20"
+ kotlin("plugin.serialization") version "2.1.20-Beta1"
id("androidx.navigation.safeargs.kotlin")
- id("org.jlleitschuh.gradle.ktlint") version "11.4.0"
- id("com.github.triplet.play") version "3.8.6"
+ id("org.jlleitschuh.gradle.ktlint") version "12.1.2"
+ id("com.github.triplet.play") version "3.12.1"
}
/**
@@ -27,20 +27,20 @@ val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toIn
android {
namespace = "org.citron.citron_emu"
- compileSdkVersion = "android-34"
- ndkVersion = "26.1.10909125"
+ compileSdkVersion = "android-35"
+ ndkVersion = "27.2.12479018" // "28.0.12433566 rc1"// "28.0.12674087 rc2" // "26.1.10909125"
buildFeatures {
viewBinding = true
}
compileOptions {
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
+ sourceCompatibility = JavaVersion.VERSION_21
+ targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
- jvmTarget = "17"
+ jvmTarget = "21"
}
packaging {
@@ -56,7 +56,7 @@ android {
// TODO If this is ever modified, change application_id in strings.xml
applicationId = "org.citron.citron_emu"
minSdk = 30
- targetSdk = 34
+ targetSdk = 35
versionName = getGitVersion()
versionCode = if (System.getenv("AUTO_VERSIONED") == "true") {
@@ -104,10 +104,13 @@ android {
}
resValue("string", "app_name_suffixed", "citron")
+ isDefault = true
+ isShrinkResources = true
isMinifyEnabled = true
+ isJniDebuggable = false
isDebuggable = false
proguardFiles(
- getDefaultProguardFile("proguard-android.txt"),
+ getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
@@ -115,13 +118,12 @@ android {
// builds a release build that doesn't need signing
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
register("relWithDebInfo") {
- isDefault = true
resValue("string", "app_name_suffixed", "citron Debug Release")
signingConfig = signingConfigs.getByName("default")
isMinifyEnabled = true
isDebuggable = true
proguardFiles(
- getDefaultProguardFile("proguard-android.txt"),
+ getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
versionNameSuffix = "-relWithDebInfo"
@@ -146,7 +148,7 @@ android {
create("mainline") {
isDefault = true
dimension = "version"
- buildConfigField("Boolean", "PREMIUM", "false")
+ buildConfigField("Boolean", "PREMIUM", "true") // Spoof EA Version
}
create("ea") {
@@ -184,7 +186,7 @@ android {
}
}
-tasks.create<Delete>("ktlintReset") {
+tasks.create<Delete>("ktlintReset") { // Deprecated, Still Works.
delete(File(buildDir.path + File.separator + "intermediates/ktLint"))
}
@@ -202,7 +204,7 @@ ktlint {
version.set("0.47.1")
android.set(true)
ignoreFailures.set(false)
- disabledRules.set(
+ disabledRules.set( // Deprecated, Still Works.
setOf(
"no-wildcard-imports",
"package-name",
@@ -224,24 +226,24 @@ play {
}
dependencies {
- implementation("androidx.core:core-ktx:1.12.0")
- implementation("androidx.appcompat:appcompat:1.6.1")
- implementation("androidx.recyclerview:recyclerview:1.3.1")
- implementation("androidx.constraintlayout:constraintlayout:2.1.4")
- implementation("androidx.fragment:fragment-ktx:1.6.1")
+ implementation("androidx.core:core-ktx:1.15.0")
+ implementation("androidx.appcompat:appcompat:1.7.0")
+ implementation("androidx.recyclerview:recyclerview:1.3.2")
+ implementation("androidx.constraintlayout:constraintlayout:2.2.0")
+ implementation("androidx.fragment:fragment-ktx:1.8.5")
implementation("androidx.documentfile:documentfile:1.0.1")
- implementation("com.google.android.material:material:1.9.0")
+ implementation("com.google.android.material:material:1.12.0")
implementation("androidx.preference:preference-ktx:1.2.1")
- implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2")
+ implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
implementation("io.coil-kt:coil:2.2.2")
implementation("androidx.core:core-splashscreen:1.0.1")
- implementation("androidx.window:window:1.2.0-beta03")
- implementation("androidx.constraintlayout:constraintlayout:2.1.4")
+ implementation("androidx.window:window:1.3.0")
+ implementation("androidx.constraintlayout:constraintlayout:2.2.0")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
- implementation("androidx.navigation:navigation-fragment-ktx:2.7.4")
- implementation("androidx.navigation:navigation-ui-ktx:2.7.4")
+ implementation("androidx.navigation:navigation-fragment-ktx:2.8.5")
+ implementation("androidx.navigation:navigation-ui-ktx:2.8.5")
implementation("info.debatty:java-string-similarity:2.0.0")
- implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0")
+ implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
}
fun runGitCommand(command: List<String>): String {