- build-logic/settings.gradle.kts resolves parent catalog via files("../gradle/libs.versions.toml")
- build-logic/build.gradle.kts declares kotlin-dsl + 9 compileOnly asDependency entries
- recipe.quality: Spotless + ktlint + D-11 allWarningsAsErrors safety net (plugins.withId guard)
- recipe.kotlin.multiplatform: D-05 target matrix (androidTarget, iosArm64, iosSimulatorArm64, jvm, wasmJs) + JVM 11/21 split + baseName "ComposeApp" + Koin/Kermit/kotlin-test deps
- recipe.compose.multiplatform: layers on recipe.kotlin.multiplatform (PITFALL #2 avoided) + hot-reload + Compose deps
- recipe.android.application: namespace dev.ulfrx.recipe + findVersion catalog accessor (PITFALL #1)
- recipe.jvm.server: Ktor + Flyway + Postgres with quoted "implementation" configs + cleanDisabled guard
56 lines
1.5 KiB
Kotlin
56 lines
1.5 KiB
Kotlin
// 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<VersionCatalogsExtension>().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())
|
|
}
|
|
}
|
|
}
|