fix: correct tooling versions (Gradle 9.5.1, AGP 8.13.2) and add Kotlin Compose plugin

- AGP 2.1.3 doesn't exist; use 8.13.2 (latest stable 8.x)
- Gradle 9.6.1 incompatible with AGP 8.x; use 9.5.1
- Add org.jetbrains.kotlin.plugin.compose (required since Compose MP 1.6.10)
- Fix source set access (by getting) and iOS Darwin dependency injection
- Remove instrumentedTestVariant (KotlinSourceSetTree unresolved)
This commit is contained in:
2026-07-08 16:59:26 +02:00
parent 15ae8cd046
commit 9ee5b1c415
4 changed files with 49 additions and 33 deletions
+45 -31
View File
@@ -1,9 +1,9 @@
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.compose.multiplatform)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.android.application)
@@ -11,8 +11,6 @@ plugins {
kotlin {
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test)
compilations.all {
compileTaskProvider.configure {
compilerOptions.jvmTarget.set(JvmTarget.JVM_11)
@@ -20,43 +18,59 @@ kotlin {
}
}
listOf(iosX64(), iosArm64(), iosSimulatorArm64())
iosX64()
iosArm64()
iosSimulatorArm64()
jvm("desktop")
sourceSets {
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.components.uiToolingPreview)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.multiplatform.settings)
implementation(libs.multiplatform.settings.no.arg)
implementation(libs.lifecycle.viewmodel.compose)
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.components.uiToolingPreview)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.multiplatform.settings)
implementation(libs.multiplatform.settings.no.arg)
implementation(libs.lifecycle.viewmodel.compose)
}
}
commonTest.dependencies {
implementation(kotlin("test"))
implementation(libs.ktor.client.mock)
implementation(libs.kotlinx.coroutines.test)
implementation(libs.multiplatform.settings.test)
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
implementation(libs.ktor.client.mock)
implementation(libs.kotlinx.coroutines.test)
implementation(libs.multiplatform.settings.test)
}
}
androidMain.dependencies {
implementation(libs.ktor.client.cio)
implementation(libs.androidx.activity.compose)
val androidMain by getting {
dependencies {
implementation(libs.ktor.client.cio)
implementation(libs.androidx.activity.compose)
}
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
desktopMain.dependencies {
implementation(libs.ktor.client.cio)
implementation(compose.desktop.currentOs)
val desktopMain by getting {
dependencies {
implementation(libs.ktor.client.cio)
implementation(compose.desktop.currentOs)
}
}
}
// Darwin engine for all iOS targets
targets.filterIsInstance<org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget>()
.filter { it.konanTarget.family == org.jetbrains.kotlin.konan.target.Family.IOS }
.forEach { target ->
target.compilations.getByName("main").dependencies {
implementation(libs.ktor.client.darwin)
}
}
}
android {