BUILD - migrate to AGP 9.3, Gradle 9.7.1, new DSL and built-in Kotlin

This commit is contained in:
Alex Sim committed 2026-09-02 23:10:14 +02:00
1 parent 1378b99895
commit b161a547c3
30 files changed
+94 -114

No files matched your search

+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -23,9 +22,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+1 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -14,6 +13,7 @@ android {
sourceSets {
getByName("main") {
java.srcDirs("src")
kotlin.directories.addAll(["src"])
res.srcDirs("res")
}
}
@@ -23,9 +23,6 @@ android {
targetCompatibility = JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = "21"
}
}
dependencies {
+2 -4
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -9,12 +8,11 @@ android {
compileSdk 36
defaultConfig {
minSdkVersion 26
targetSdkVersion 36
minSdk = 26
targetSdk = 36
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
java.srcDirs = ['src']
+3 -7
View File
@@ -1,5 +1,4 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
namespace = "com.android.app.animation"
@@ -8,14 +7,15 @@ android {
compileSdk 36
defaultConfig {
minSdkVersion 26
targetSdkVersion 36
minSdk = 26
targetSdk = 36
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
java.srcDirs = ['src']
kotlin.directories.addAll(['src'])
res.srcDirs = ['res']
manifest.srcFile 'AndroidManifest.xml'
}
@@ -36,10 +36,6 @@ android {
sourceCompatibility JavaVersion.VERSION_21
targetCompatibility JavaVersion.VERSION_21
}
kotlinOptions {
jvmTarget = '21'
freeCompilerArgs = ["-Xjvm-default=all"]
}
}
dependencies {
+24 -13
View File
@@ -2,7 +2,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
buildscript {
dependencies {
classpath GRADLE_CLASS_PATH
classpath PROTOBUF_CLASS_PATH
classpath KOTLIN
}
@@ -11,7 +10,12 @@ buildscript {
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.rikka.refine)
id "com.google.devtools.ksp" version "2.3.3"
// AGP's kapt bridge (ships in com.android.tools.build:gradle-kotlin, versioned with AGP)
// TODO drop this once Dagger can move to KSP - blocked by the ~61 Java @Module/@Component
// files, which KSP cannot see. legacy-kapt is a bridge, not a destination.
alias(libs.plugins.android.legacy.kapt)
// Unused (no `ksp` dependency anywhere); AGP 9 needs >= 2.3.6 if it ever comes back
//id "com.google.devtools.ksp" version "2.3.6"
}
final String ANDROID_TOP = "${rootDir}"
@@ -39,17 +43,15 @@ def frameworkStubs15 = resolveJitpackStub('15-r1')
def frameworkStubs16 = resolveJitpackStub('16-r2')
apply plugin: 'com.google.protobuf'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion COMPILE_SDK
compileSdk = COMPILE_SDK as int
namespace = 'com.android.launcher3'
defaultConfig {
minSdkVersion 26
targetSdkVersion 36
minSdk = 26
targetSdk = 36
versionCode 10102
versionName "1.1.2"
@@ -100,7 +102,7 @@ android {
// The flavor dimensions for build variants (e.g. aospWithQuickstep, aospWithoutQuickstep)
// See: https://developer.android.com/studio/build/build-variants#flavor-dimensions
flavorDimensions "app", "recents"
flavorDimensions = ["app", "recents"]
productFlavors {
aosp {
@@ -118,7 +120,7 @@ android {
withQuickstep {
dimension "recents"
minSdkVersion 33
minSdk = 33
}
withoutQuickstep {
@@ -130,6 +132,7 @@ android {
main {
res.srcDirs = ['res']
java.srcDirs = ['src', 'src_plugins' /*, 'tests/shared', 'system_ext', 'tests/multivalentTests/shared', 'systemui_core/shared'*/]
kotlin.directories.addAll(['src', 'src_plugins' /*, 'tests/shared', 'system_ext', 'tests/multivalentTests/shared', 'systemui_core/shared'*/])
manifest.srcFile 'AndroidManifest-common.xml'
proto {
srcDirs = ['protos/', 'quickstep/protos_overrides/']
@@ -148,10 +151,12 @@ android {
aosp {
java.srcDirs = [/*'src_flags',*/ 'src_shortcuts_overrides']
kotlin.directories.addAll([/*'src_flags',*/ 'src_shortcuts_overrides'])
}
aospWithoutQuickstep {
java.srcDirs = ['src_no_quickstep']
kotlin.directories.addAll(['src_no_quickstep'])
manifest.srcFile "AndroidManifest.xml"
}
@@ -162,6 +167,7 @@ android {
l3go {
res.srcDirs = ['go/res']
java.srcDirs = ['go/src']
kotlin.directories.addAll(['go/src'])
manifest.srcFile "go/AndroidManifest.xml"
}
@@ -180,17 +186,22 @@ android {
withQuickstep {
res.srcDirs = ['quickstep/res', 'quickstep/recents_ui_overrides/res']
java.srcDirs = ['quickstep/src', 'quickstep/recents_ui_overrides/src', 'quickstep/src_protolog', 'quickstep/dagger']
kotlin.directories.addAll(['quickstep/src', 'quickstep/recents_ui_overrides/src', 'quickstep/src_protolog', 'quickstep/dagger'])
manifest.srcFile "quickstep/AndroidManifest.xml"
}
}
kotlinOptions {
jvmTarget = '21'
}
buildFeatures {
buildConfig = true
}
packaging {
resources {
// Dead weight at runtime, ~53 KB of APK
excludes += ['**/*.proto', 'META-INF/*.version', 'META-INF/**/*.kotlin_module',
'kotlin/**', 'DebugProbesKt.bin']
}
}
}
// 启用增量注解处理(提升编译速度)
+1 -1
View File
@@ -8,7 +8,7 @@ android {
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace 'app.lawnchair.compatlib.sixteen'
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace "app.lawnchair.compatlib.ten"
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace "app.lawnchair.compatlib.eleven"
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace "app.lawnchair.compatlib.twelve"
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace 'app.lawnchair.compatlib.thirteen'
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace 'app.lawnchair.compatlib.fourteen'
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+1 -1
View File
@@ -6,7 +6,7 @@ android {
namespace 'app.lawnchair.compatlib.fifteen'
compileSdk 36
defaultConfig {
minSdkVersion 26
minSdk = 26
}
buildFeatures {
+3 -3
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
@@ -9,14 +8,15 @@ android {
compileSdk 36
defaultConfig {
minSdkVersion 26
targetSdkVersion 36
minSdk = 26
targetSdk = 36
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
java.srcDirs = ['src']
kotlin.directories.addAll(['src'])
}
}
compileOptions {
+5 -4
View File
@@ -13,15 +13,16 @@
#Thu Oct 16 12:33:31 CST 2025
ANDROID_X_VERSION=1+
BUILD_TOOLS_VERSION=28.0.3
COMPILE_SDK=android-36
GRADLE_CLASS_PATH=com.android.tools.build\:gradle\:8.13.1
COMPILE_SDK=36
# AGP version lives in gradle/libs.versions.toml (agp), applied via the plugins block
KOTLIN=org.jetbrains.kotlin\:kotlin-gradle-plugin\:2.2.21
PROTOBUF_CLASS_PATH=com.google.protobuf\:protobuf-gradle-plugin\:0.9.5
PROTOBUF_CLASS_PATH=com.google.protobuf\:protobuf-gradle-plugin\:0.10.0
PROTOBUF_DEPENDENCY=com.google.protobuf.nano\:protobuf-javanano\:3.1.0
android.enableJetifier=true
android.r8.maxWorkers=4
android.r8.optimizedResourceShrinking=true
android.useAndroidX=true
kotlin.daemon.jvmargs=-Xmx4096m
org.gradle.jvmargs=-Xmx2048M -Dkotlin.daemon.jvm.options\="-Xmx2048M"
org.gradle.parallel=true
# Enabled parallel sync for Gradle 9.4+
org.gradle.tooling.parallel=true
+8 -8
View File
@@ -1,6 +1,6 @@
[versions]
agp = "8.13.1"
protobuf = "0.9.5"
agp = "9.3.0"
protobuf = "0.10.0"
kotlin = "2.2.21"
appcompat = "1.7.1"
palette = "1.0.0"
@@ -42,8 +42,7 @@ protobufJavalite = "4.33.2"
recyclerview = "1.4.0"
robolectric = "4.16"
rulesVersion = "1.7.0"
runner = "1.0.2"
rules = "1.0.2"
testRunner = "1.7.0"
sliceBuilders = "1.0.0"
junit = "4.13.2"
@@ -73,7 +72,7 @@ jacson-databind = "2.16.1"
# https://mvnrepository.com/artifact/org.apache.maven/maven-plugin-api
maven-plugin-api = "3.9.11"
richeditor-compose = "1.0.0-beta02"
uiautomatorV18 = "2.1.3"
uiautomatorV18 = "2.3.0"
window = "1.5.1"
fragment = "1.8.9"
collection-ktx = "1.6.0-beta01"
@@ -127,8 +126,8 @@ material = { module = "com.google.android.material:material", version.ref = "mat
mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" }
protobuf-javalite = { module = "com.google.protobuf:protobuf-javalite", version.ref = "protobufJavalite" }
robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
rules = { module = "com.android.support.test:rules", version.ref = "rules" }
runner = { module = "com.android.support.test:runner", version.ref = "runner" }
rules = { module = "androidx.test:rules", version.ref = "rulesVersion" }
runner = { module = "androidx.test:runner", version.ref = "testRunner" }
commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commons-lang3" }
commons-io = { module = "commons-io:commons-io", version.ref = "commons-io" }
@@ -141,13 +140,14 @@ jacson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", vers
maven-plugin-api = { module = "org.apache.maven:maven-plugin-api", version.ref = "maven-plugin-api" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
uiautomator-v18 = { module = "com.android.support.test.uiautomator:uiautomator-v18", version.ref = "uiautomatorV18" }
uiautomator-v18 = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomatorV18" }
[plugins]
rikka-refine = { id = "dev.rikka.tools.refine", version.ref = "refine" }
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
android-test = { id = "com.android.test", version.ref = "agp" }
android-legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" }
androidx-baselineprofile = { id = "androidx.baselineprofile", version.ref = "baselineprofile" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
+2 -2
View File
@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
distributionSha256Sum=acd53f1edaf02f1a8ff99879f8a34b302661a057d9b063ae9e35b552f804d20a
distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
+3 -3
View File
@@ -1,6 +1,5 @@
plugins {
id 'com.android.library'
id 'kotlin-android'
}
android {
@@ -21,8 +20,9 @@ android {
res.srcDirs = ['res']
}
}
kotlin {
jvmToolchain(21)
compileOptions {
sourceCompatibility JavaVersion.VERSION_21
targetCompatibility JavaVersion.VERSION_21
}
}
+8 -6
View File
@@ -1,6 +1,5 @@
plugins {
id("com.android.library")
id("kotlin-android")
}
android {
@@ -10,20 +9,23 @@ android {
defaultConfig {
minSdk = 26
targetSdk = 36
// Gone from the AGP 9 library DSL; only ever fed instrumentation tests, which we have none of
//targetSdk = 36
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
sourceSets {
named("main") {
java.setSrcDirs(listOf("src"))
java.directories.apply { clear(); add("src") }
kotlin.directories.add("src")
manifest.srcFile("AndroidManifest.xml")
res.setSrcDirs(listOf("res"))
res.directories.apply { clear(); add("res") }
}
}
kotlin {
jvmToolchain(21)//1.8(8)
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}
+8 -6
View File
@@ -1,6 +1,5 @@
plugins {
id("com.android.library")
id("kotlin-android")
}
android {
@@ -10,20 +9,23 @@ android {
defaultConfig {
minSdk = 26
targetSdk = 36
// Gone from the AGP 9 library DSL; only ever fed instrumentation tests, which we have none of
//targetSdk = 36
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
sourceSets {
named("main") {
java.setSrcDirs(listOf("src"))
java.directories.apply { clear(); add("src") }
kotlin.directories.add("src")
manifest.srcFile("AndroidManifest.xml")
res.setSrcDirs(listOf("res"))
res.directories.apply { clear(); add("res") }
}
}
kotlin {
jvmToolchain(21)//1.8(8)
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}
+3 -4
View File
@@ -1,15 +1,14 @@
plugins {
id 'com.android.library'
id 'org.jetbrains.kotlin.android'
}
android {
compileSdkVersion COMPILE_SDK
compileSdk = COMPILE_SDK as int
namespace "com.android.systemui.plugin_core"
defaultConfig {
minSdkVersion 26
targetSdkVersion 36
minSdk = 26
targetSdk = 36
versionCode 1
versionName "1.0"
}
+8 -6
View File
@@ -1,6 +1,5 @@
plugins {
id("com.android.library")
id("kotlin-android")
}
android {
@@ -10,20 +9,23 @@ android {
defaultConfig {
minSdk = 26
targetSdk = 36
// Gone from the AGP 9 library DSL; only ever fed instrumentation tests, which we have none of
//targetSdk = 36
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
sourceSets {
named("main") {
java.setSrcDirs(listOf("src"))
java.directories.apply { clear(); add("src") }
kotlin.directories.add("src")
manifest.srcFile("AndroidManifest.xml")
res.setSrcDirs(listOf("res"))
res.directories.apply { clear(); add("res") }
}
}
kotlin {
jvmToolchain(21)//1.8(8)
compileOptions {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
}