ece3f8bf78
Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
133 lines
4.3 KiB
Kotlin
133 lines
4.3 KiB
Kotlin
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
||
import java.util.*
|
||
|
||
plugins {
|
||
alias(libs.plugins.kotlinMultiplatform)
|
||
alias(libs.plugins.composeCompiler)
|
||
alias(libs.plugins.composeMultiplatform)
|
||
alias(libs.plugins.kotlinSerialization)
|
||
}
|
||
|
||
group = "at.mocode.frontend.shell"
|
||
version = "1.0.0"
|
||
|
||
val versionProps = Properties().also { props ->
|
||
rootProject.file("version.properties").inputStream().use { props.load(it) }
|
||
}
|
||
val vMajor: String? = versionProps.getProperty("VERSION_MAJOR", "1")
|
||
val vMinor: String? = versionProps.getProperty("VERSION_MINOR", "0")
|
||
val vPatch: String? = versionProps.getProperty("VERSION_PATCH", "0")
|
||
val packageVer = "$vMajor.$vMinor.$vPatch"
|
||
|
||
kotlin {
|
||
jvm()
|
||
|
||
sourceSets {
|
||
jvmMain.dependencies {
|
||
implementation(projects.frontend.core.domain)
|
||
implementation(projects.core.coreDomain)
|
||
implementation(projects.frontend.core.designSystem)
|
||
implementation(projects.frontend.core.navigation)
|
||
implementation(projects.frontend.core.network)
|
||
implementation(projects.frontend.core.sync)
|
||
implementation(projects.frontend.core.localDb)
|
||
implementation(projects.frontend.core.auth)
|
||
implementation(projects.core.znsParser)
|
||
|
||
implementation(projects.frontend.features.pingFeature)
|
||
implementation(projects.frontend.features.nennungFeature)
|
||
implementation(projects.frontend.features.znsImportFeature)
|
||
implementation(projects.frontend.features.veranstalterFeature)
|
||
implementation(projects.frontend.features.veranstaltungFeature)
|
||
implementation(projects.frontend.features.funktionaerFeature)
|
||
implementation(projects.frontend.features.profileFeature)
|
||
implementation(projects.frontend.features.reiterFeature)
|
||
implementation(projects.frontend.features.pferdeFeature)
|
||
implementation(projects.frontend.features.vereinFeature)
|
||
implementation(projects.frontend.features.turnierFeature)
|
||
implementation(projects.frontend.features.billingFeature)
|
||
implementation(projects.frontend.features.deviceInitialization)
|
||
|
||
implementation(compose.desktop.currentOs)
|
||
implementation(compose.runtime)
|
||
implementation(compose.foundation)
|
||
implementation(compose.material3)
|
||
implementation(compose.ui)
|
||
implementation(compose.materialIconsExtended)
|
||
implementation(compose.uiTooling)
|
||
implementation(libs.composeHotReloadApi)
|
||
|
||
implementation(libs.koin.core)
|
||
implementation(libs.koin.compose)
|
||
implementation(libs.koin.compose.viewmodel)
|
||
implementation(libs.kotlinx.coroutines.swing)
|
||
implementation(libs.bundles.kmp.common)
|
||
implementation(libs.bundles.compose.common)
|
||
implementation(libs.logback.classic)
|
||
}
|
||
|
||
jvmTest.dependencies {
|
||
implementation(libs.kotlin.test)
|
||
}
|
||
}
|
||
}
|
||
|
||
compose.desktop {
|
||
application {
|
||
mainClass = "at.mocode.frontend.shell.desktop.MainKt"
|
||
|
||
nativeDistributions {
|
||
targetFormats(TargetFormat.Deb, TargetFormat.Rpm, TargetFormat.Msi, TargetFormat.Dmg)
|
||
|
||
packageName = "meldestelle"
|
||
packageVersion = packageVer
|
||
description = "ÖTO-konforme Turnier-Meldestelle – Desktop App"
|
||
vendor = "mo-code.at"
|
||
copyright = "© 2024–2026 mo-code.at. Alle Rechte vorbehalten."
|
||
licenseFile.set(rootProject.file("LICENSE"))
|
||
|
||
linux {
|
||
iconFile.set(project.file("src/jvmMain/resources/icon.png"))
|
||
packageName = "meldestelle"
|
||
appCategory = "misc"
|
||
menuGroup = "Meldestelle"
|
||
shortcut = true
|
||
debMaintainer = "support@mo-code.at"
|
||
}
|
||
|
||
windows {
|
||
iconFile.set(project.file("src/jvmMain/resources/icon.ico"))
|
||
upgradeUuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
|
||
menuGroup = "Meldestelle"
|
||
shortcut = true
|
||
dirChooser = true
|
||
perUserInstall = false
|
||
}
|
||
|
||
macOS {
|
||
iconFile.set(project.file("src/jvmMain/resources/icon.icns"))
|
||
bundleID = "at.mocode.meldestelle"
|
||
appCategory = "public.app-category.productivity"
|
||
}
|
||
|
||
modules(
|
||
"java.base",
|
||
"java.desktop",
|
||
"java.logging",
|
||
"java.naming",
|
||
"java.net.http",
|
||
"java.sql",
|
||
"jdk.crypto.ec",
|
||
"jdk.unsupported",
|
||
)
|
||
}
|
||
|
||
jvmArgs(
|
||
"--enable-native-access=ALL-UNNAMED",
|
||
"-Xms128m",
|
||
"-Xmx512m",
|
||
"-Dfile.encoding=UTF-8",
|
||
)
|
||
}
|
||
}
|