111 lines
3.4 KiB
Plaintext
111 lines
3.4 KiB
Plaintext
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlinMultiplatform)
|
|
alias(libs.plugins.kotlinSerialization)
|
|
alias(libs.plugins.composeMultiplatform)
|
|
alias(libs.plugins.composeCompiler)
|
|
// alias(libs.plugins.composeHotReload)
|
|
}
|
|
|
|
// Project version configuration
|
|
version = "1.0.0"
|
|
group = "at.mocode"
|
|
|
|
|
|
kotlin {
|
|
|
|
// Configure JVM toolchain for all JVM targets
|
|
jvmToolchain(21)
|
|
|
|
jvm()
|
|
|
|
js {
|
|
browser()
|
|
binaries.executable()
|
|
}
|
|
|
|
@OptIn(ExperimentalWasmDsl::class)
|
|
wasmJs {
|
|
browser()
|
|
binaries.executable()
|
|
}
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
|
|
implementation(projects.client.shared)
|
|
// Core Compose Dependencies - minimiert für kleinere Bundle-Größe
|
|
implementation(compose.runtime)
|
|
implementation(compose.foundation)
|
|
implementation(compose.material3)
|
|
implementation(compose.ui)
|
|
implementation(compose.components.resources)
|
|
// UiToolingPreview nur für Development, nicht für Production WASM
|
|
implementation(compose.components.uiToolingPreview)
|
|
|
|
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
|
implementation(libs.androidx.lifecycle.runtimeCompose)
|
|
|
|
// HTTP client dependencies for ping-service - optimiert
|
|
implementation(libs.ktor.client.core)
|
|
implementation(libs.ktor.client.contentNegotiation)
|
|
implementation(libs.ktor.client.serialization.kotlinx.json)
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
}
|
|
commonTest.dependencies {
|
|
implementation(libs.kotlin.test)
|
|
}
|
|
jvmMain.dependencies {
|
|
implementation(compose.desktop.currentOs)
|
|
implementation(libs.kotlinx.coroutines.swing)
|
|
implementation(libs.ktor.client.cio)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
compose.desktop {
|
|
application {
|
|
mainClass = "at.mocode.MainKt"
|
|
|
|
nativeDistributions {
|
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
|
packageName = "Meldestelle"
|
|
packageVersion = "1.0.0"
|
|
|
|
// Application metadata
|
|
description = "Pferdesport Meldestelle System - Client Application"
|
|
copyright = "© 2025 Meldestelle Project"
|
|
vendor = "at.mocode"
|
|
|
|
// Platform-specific configurations
|
|
linux {
|
|
iconFile.set(project.file("src/commonMain/resources/icon.png"))
|
|
packageName = "meldestelle"
|
|
debMaintainer = "stefan@mocode.at"
|
|
menuGroup = "Office"
|
|
}
|
|
|
|
windows {
|
|
iconFile.set(project.file("src/commonMain/resources/icon.ico"))
|
|
menuGroup = "Meldestelle"
|
|
upgradeUuid = "61DAB35E-17CB-43B8-8A72-39876CF0E021"
|
|
}
|
|
|
|
macOS {
|
|
iconFile.set(project.file("src/commonMain/resources/icon.icns"))
|
|
bundleID = "at.mocode.meldestelle"
|
|
packageBuildVersion = "1.0.0"
|
|
packageVersion = "1.0.0"
|
|
}
|
|
}
|
|
|
|
buildTypes.release.proguard {
|
|
configurationFiles.from(project.file("compose-desktop.pro"))
|
|
}
|
|
}
|
|
}
|