import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.composeCompiler) alias(libs.plugins.composeMultiplatform) alias(libs.plugins.kotlinSerialization) } kotlin { // JVM Target für Desktop jvm() // JavaScript Target für Web js(IR) { browser { webpackTask { mainOutputFileName = "web-app.js" } } binaries.executable() } sourceSets { commonMain.dependencies { // Shared modules implementation(project(":clients:shared")) implementation(project(":clients:shared:common-ui")) implementation(project(":clients:shared:navigation")) implementation(project(":clients:ping-feature")) // Compose Multiplatform implementation(compose.runtime) implementation(compose.foundation) implementation(compose.material3) implementation(compose.ui) implementation(compose.components.resources) // Coroutines implementation(libs.kotlinx.coroutines.core) // Serialization implementation(libs.kotlinx.serialization.json) } jvmMain.dependencies { implementation(compose.desktop.currentOs) implementation(libs.kotlinx.coroutines.swing) } jsMain.dependencies { implementation(compose.html.core) } } } // Desktop Application Configuration compose.desktop { application { mainClass = "MainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) packageName = "Meldestelle" packageVersion = "1.0.0" description = "Meldestelle Development App" } } }