Skip to content

Commit cd16dce

Browse files
committed
Migrate to the new Android KMP Gradle plugin with androidLibrary
1 parent 683e1de commit cd16dce

File tree

5 files changed

+42
-48
lines changed

5 files changed

+42
-48
lines changed

build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
plugins {
22
alias(libs.plugins.aboutLibraries) apply false
33
alias(libs.plugins.androidApplication) apply false
4-
alias(libs.plugins.androidLibrary) apply false
4+
alias(libs.plugins.androidMultiplatformLibrary) apply false
55
alias(libs.plugins.composeMultiplatform) apply false
6-
alias(libs.plugins.kotlinParcelize) apply false
76
alias(libs.plugins.kotlinMultiplatform) apply false
87
alias(libs.plugins.kotlinSerialization) apply false
98
alias(libs.plugins.kotlinJvm) apply false

gradle/libs.versions.toml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[versions]
22
aboutlibraries = "12.2.3"
3-
agp = "8.7.3"
3+
agp = "8.10.1"
44
android-compileSdk = "35"
55
android-minSdk = "26"
66
android-svg = "1.4"
@@ -17,7 +17,7 @@ androidx-work-runtime = "2.10.0"
1717
coil = "3.2.0"
1818
compose-android = "1.8.2"
1919
compose-hot-reload = "1.0.0-alpha11"
20-
compose-multiplatform = "1.8.2"
20+
compose-multiplatform = "1.9.0-alpha03"
2121
coroutines = "1.10.1"
2222
doistx-normalize = "1.2.0"
2323
exposed = "0.59.0"
@@ -108,14 +108,13 @@ settings-serialization = { module = "com.russhwolf:multiplatform-settings-serial
108108
[plugins]
109109
aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" }
110110
androidApplication = { id = "com.android.application", version.ref = "agp" }
111-
androidLibrary = { id = "com.android.library", version.ref = "agp" }
111+
androidMultiplatformLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
112112
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
113113
composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "compose-hot-reload" }
114114
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
115115
googleServices = { id = "com.google.gms.google-services", version.ref = "google-services" }
116116
jib = { id = "com.google.cloud.tools.jib", version.ref = "jib" }
117117
kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
118118
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
119-
kotlinParcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
120119
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
121120
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
#Tue Jul 08 10:55:55 CEST 2025
12
distributionBase=GRADLE_USER_HOME
23
distributionPath=wrapper/dists
34
distributionSha256Sum=31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
56
networkTimeout=10000
67
validateDistributionUrl=true
78
zipStoreBase=GRADLE_USER_HOME

shared/build.gradle.kts

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
22

3+
import com.android.build.api.dsl.androidLibrary
34
import com.mikepenz.aboutlibraries.plugin.DuplicateMode
45
import com.mikepenz.aboutlibraries.plugin.DuplicateRule
56
import org.jetbrains.kotlin.compose.compiler.gradle.ComposeFeatureFlag
67
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
8+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
79
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
810

911
plugins {
1012
alias(libs.plugins.aboutLibraries)
11-
alias(libs.plugins.androidLibrary)
13+
alias(libs.plugins.androidMultiplatformLibrary)
1214
alias(libs.plugins.composeMultiplatform)
13-
alias(libs.plugins.kotlinParcelize)
1415
alias(libs.plugins.composeCompiler)
1516
alias(libs.plugins.kotlinMultiplatform)
1617
alias(libs.plugins.kotlinSerialization)
@@ -21,13 +22,18 @@ kotlin {
2122
compilerOptions {
2223
freeCompilerArgs.add("-Xexpect-actual-classes")
2324
}
24-
androidTarget {
25-
compilerOptions {
26-
freeCompilerArgs.addAll(
27-
"-P",
28-
"plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=org.jetbrains.kotlinconf.zoomable.internal.AndroidParcelize"
29-
)
25+
androidLibrary {
26+
namespace = "org.jetbrains.kotlinconf"
27+
compileSdk = libs.versions.android.compileSdk.get().toInt()
28+
minSdk = libs.versions.android.minSdk.get().toInt()
29+
30+
compilations.configureEach {
31+
compilerOptions.configure {
32+
jvmTarget = JvmTarget.JVM_11
33+
}
3034
}
35+
36+
experimentalProperties["android.experimental.kmp.enableAndroidResources"] = true
3137
}
3238

3339
jvm()
@@ -164,23 +170,10 @@ kotlin {
164170
jvmToolchain(21)
165171
}
166172

167-
android {
168-
namespace = "org.jetbrains.kotlinconf"
169-
compileSdk = libs.versions.android.compileSdk.get().toInt()
170-
171-
defaultConfig {
172-
minSdk = libs.versions.android.minSdk.get().toInt()
173-
}
174-
compileOptions {
175-
sourceCompatibility = JavaVersion.VERSION_11
176-
targetCompatibility = JavaVersion.VERSION_11
177-
}
178-
}
179-
180173
// Android preview support
181-
dependencies {
182-
debugImplementation(compose.uiTooling)
183-
}
174+
//dependencies {
175+
// debugImplementation(compose.uiTooling)
176+
//}
184177

185178
compose.desktop {
186179
application {

ui-components/build.gradle.kts

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
22

3+
import com.android.build.api.dsl.androidLibrary
34
import org.jetbrains.kotlin.compose.compiler.gradle.ComposeFeatureFlag
45
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
56
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
7+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
68

79
plugins {
8-
alias(libs.plugins.androidLibrary)
10+
alias(libs.plugins.androidMultiplatformLibrary)
911
alias(libs.plugins.composeMultiplatform)
1012
alias(libs.plugins.composeCompiler)
1113
alias(libs.plugins.kotlinMultiplatform)
@@ -28,7 +30,19 @@ kotlin {
2830
}
2931
}
3032

31-
androidTarget()
33+
androidLibrary {
34+
namespace = "com.jetbrains.kotlinconf.uicomponents"
35+
compileSdk = libs.versions.android.compileSdk.get().toInt()
36+
minSdk = libs.versions.android.minSdk.get().toInt()
37+
38+
compilations.configureEach {
39+
compilerOptions.configure {
40+
jvmTarget = JvmTarget.JVM_11
41+
}
42+
}
43+
44+
experimentalProperties["android.experimental.kmp.enableAndroidResources"] = true
45+
}
3246

3347
jvm()
3448

@@ -79,18 +93,6 @@ kotlin {
7993
jvmToolchain(21)
8094
}
8195

82-
android {
83-
namespace = "com.jetbrains.kotlinconf.uicomponents"
84-
compileSdk = libs.versions.android.compileSdk.get().toInt()
85-
defaultConfig {
86-
minSdk = libs.versions.android.minSdk.get().toInt()
87-
}
88-
compileOptions {
89-
sourceCompatibility = JavaVersion.VERSION_11
90-
targetCompatibility = JavaVersion.VERSION_11
91-
}
92-
}
93-
9496
// Hot reload support
9597
composeCompiler {
9698
featureFlags.add(ComposeFeatureFlag.OptimizeNonSkippingGroups)
@@ -102,6 +104,6 @@ compose.resources {
102104
}
103105

104106
// Android preview support
105-
dependencies {
106-
debugImplementation(compose.uiTooling)
107-
}
107+
//dependencies {
108+
// debugImplementation(compose.uiTooling)
109+
//}

0 commit comments

Comments
 (0)