Update android.gradle to v9 (major) (#3105)

Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
This commit is contained in:
Mend Renovate
2026-03-22 13:02:55 +00:00
committed by GitHub
parent bc32308327
commit 34afdabcfe
15 changed files with 96 additions and 69 deletions
@@ -1,21 +1,50 @@
import mihon.gradle.configurations.configureAndroid
import com.android.build.api.dsl.ApplicationDefaultConfig
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.dsl.CompileOptions
import com.android.build.api.dsl.DefaultConfig
import mihon.gradle.configurations.configureKotlin
import mihon.gradle.extensions.alias
import mihon.gradle.extensions.android
import mihon.gradle.extensions.configureTest
import mihon.gradle.extensions.coreLibraryDesugaring
import mihon.gradle.extensions.libs
import mihon.gradle.extensions.plugins
import mihon.gradle.extensions.mihonx
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
@Suppress("UNUSED")
class PluginAndroidBase : Plugin<Project> {
override fun apply(target: Project): Unit = with(target) {
plugins {
alias(libs.plugins.kotlin.android)
}
configureKotlin()
configureTest()
configureAndroid()
android {
defaultConfig {
minSdk = mihonx.versions.android.sdk.min.get().toInt()
if (this is ApplicationDefaultConfig) {
targetSdk = mihonx.versions.android.sdk.target.get().toInt()
}
ndkVersion = mihonx.versions.android.ndk.get()
}
compileSdk = mihonx.versions.android.sdk.compile.get().toInt()
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
}
dependencies {
coreLibraryDesugaring(libs.android.desugar)
}
}
}
private fun CommonExtension.defaultConfig(block: DefaultConfig.() -> Unit) {
defaultConfig.apply(block)
}
private fun CommonExtension.compileOptions(block: CompileOptions.() -> Unit) {
compileOptions.apply(block)
}
@@ -1,3 +1,5 @@
import com.android.build.api.dsl.BuildFeatures
import com.android.build.api.dsl.CommonExtension
import mihon.gradle.extensions.alias
import mihon.gradle.extensions.android
import mihon.gradle.extensions.api
@@ -31,3 +33,7 @@ class PluginComposeAndroid : Plugin<Project> {
}
}
}
private fun CommonExtension.buildFeatures(block: BuildFeatures.() -> Unit) {
buildFeatures.apply(block)
}
@@ -1,32 +1,44 @@
import mihon.gradle.configurations.configureAndroid
import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget
import mihon.gradle.configurations.configureKotlin
import mihon.gradle.extensions.alias
import mihon.gradle.extensions.configureTest
import mihon.gradle.extensions.coreLibraryDesugaring
import mihon.gradle.extensions.libs
import mihon.gradle.extensions.mihonx
import mihon.gradle.extensions.plugins
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import kotlin.text.toInt
@Suppress("UNUSED")
class PluginKotlinMultiplatform : Plugin<Project> {
override fun apply(target: Project): Unit = with(target) {
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.android.kmp.library)
alias(libs.plugins.kotlin.multiplatform)
}
configureKotlin()
configureTest()
configureAndroid()
kotlin {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
applyDefaultHierarchyTemplate()
androidTarget()
android {
minSdk = mihonx.versions.android.sdk.min.get().toInt()
compileSdk = mihonx.versions.android.sdk.compile.get().toInt()
enableCoreLibraryDesugaring = true
}
}
dependencies {
coreLibraryDesugaring(libs.android.desugar)
}
}
}
@@ -34,3 +46,7 @@ class PluginKotlinMultiplatform : Plugin<Project> {
private fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) {
extensions.configure(block)
}
private fun KotlinMultiplatformExtension.android(block: KotlinMultiplatformAndroidLibraryTarget.() -> Unit) {
targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach(block)
}
@@ -1,32 +0,0 @@
package mihon.gradle.configurations
import com.android.build.api.dsl.ApplicationDefaultConfig
import mihon.gradle.extensions.android
import mihon.gradle.extensions.coreLibraryDesugaring
import mihon.gradle.extensions.libs
import mihon.gradle.extensions.mihonx
import org.gradle.api.Project
import org.gradle.kotlin.dsl.dependencies
fun Project.configureAndroid() {
android {
defaultConfig {
minSdk = mihonx.versions.android.sdk.min.get().toInt()
if (this is ApplicationDefaultConfig) {
targetSdk = mihonx.versions.android.sdk.target.get().toInt()
}
ndkVersion = mihonx.versions.android.ndk.get()
}
compileSdk = mihonx.versions.android.sdk.compile.get().toInt()
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
}
dependencies {
coreLibraryDesugaring(libs.android.desugar)
}
}
@@ -1,7 +1,6 @@
package mihon.gradle.extensions
import com.android.build.api.dsl.CommonExtension
import com.android.build.gradle.BaseExtension
import org.gradle.accessors.dm.LibrariesForLibs
import org.gradle.accessors.dm.LibrariesForMihonx
import org.gradle.api.Project
@@ -19,10 +18,8 @@ internal fun Project.plugins(block: PluginManager.() -> Unit) {
pluginManager.apply(block)
}
internal fun Project.android(block: CommonExtension<*, *, *, *, *, *>.() -> Unit) {
extensions.configure<BaseExtension> {
if (this is CommonExtension<*, *, *, *, *, *>) apply(block)
}
internal fun Project.android(block: CommonExtension.() -> Unit) {
extensions.configure(block)
}
fun Project.configureTest() {