buildSrc/src/main/kotlin/conventions/android.kt
changeset 114 ab226603d0f5
parent 85 0c23a1d2e16a
--- a/buildSrc/src/main/kotlin/conventions/android.kt	Mon May 04 16:21:57 2026 -0400
+++ b/buildSrc/src/main/kotlin/conventions/android.kt	Mon May 04 18:00:16 2026 -0400
@@ -21,17 +21,43 @@
  */
 package com.geekorum.build.conventions
 
+import com.android.build.api.dsl.CommonExtension
+import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget
 import com.android.build.gradle.BaseExtension
 import org.gradle.api.Project
+import org.gradle.api.plugins.ExtensionAware
 import org.gradle.kotlin.dsl.findByType
+import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
+
+const val ANDROID_COMPILE_SDK = 37
+const val ANDROID_MIN_SDK = 28
 
 fun Project.conventionForAndroidProject() {
+    // new AGP 9 built-in kotlin use these configuration
+    extensions.findByType<CommonExtension>()?.apply {
+        compileSdk = ANDROID_COMPILE_SDK
+        defaultConfig.minSdk = ANDROID_MIN_SDK
+    }
+
+    // new androidLibrary in multiplatform project
+    extensions.findByType<KotlinMultiplatformExtension>()?.apply {
+        (this as ExtensionAware).extensions.findByType<KotlinMultiplatformAndroidLibraryTarget>()?.apply {
+            compileSdk {
+                version = release(ANDROID_COMPILE_SDK)
+            }
+            minSdk = ANDROID_MIN_SDK
+            aarMetadata {
+                minCompileSdk = ANDROID_COMPILE_SDK
+            }
+        }
+    }
+
     extensions.findByType<BaseExtension>()?.apply {
-        setCompileSdkVersion(36)
+        setCompileSdkVersion(ANDROID_COMPILE_SDK)
         defaultConfig {
-            minSdk = 28
+            minSdk = ANDROID_MIN_SDK
             aarMetadata {
-                minCompileSdk = 28
+                minCompileSdk = ANDROID_COMPILE_SDK
             }
         }
     }