// build-logic/src/main/kotlin/recipe.kotlin.multiplatform.gradle.kts // Establishes the D-05 target matrix + JVM toolchain + common deps. // Android bytecode is JVM 11 (D-08); server + desktop + shared/jvm are JVM 21. import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.getByType import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("org.jetbrains.kotlin.multiplatform") } val libs = extensions.getByType().named("libs") kotlin { jvmToolchain(21) androidTarget { compilerOptions { jvmTarget.set(JvmTarget.JVM_11) } } listOf(iosArm64(), iosSimulatorArm64()).forEach { iosTarget -> iosTarget.binaries.framework { baseName = "ComposeApp" isStatic = true } } jvm { compilerOptions { jvmTarget.set(JvmTarget.JVM_21) } } @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() } compilerOptions { allWarningsAsErrors.set(true) } sourceSets { commonMain.dependencies { implementation(project.dependencies.platform(libs.findLibrary("koin-bom").get())) implementation(libs.findLibrary("koin-core").get()) implementation(libs.findLibrary("kermit").get()) } commonTest.dependencies { implementation(libs.findLibrary("kotlin-test").get()) } } }