90 lines
3.0 KiB
Kotlin
90 lines
3.0 KiB
Kotlin
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlinMultiplatform)
|
|
alias(libs.plugins.composeMultiplatform)
|
|
alias(libs.plugins.composeCompiler)
|
|
alias(libs.plugins.composeHotReload)
|
|
alias(libs.plugins.kotlinSerialization)
|
|
alias(libs.plugins.koin.compiler)
|
|
alias(masterLibs.plugins.versionPlugin)
|
|
}
|
|
|
|
group = "net.keinekekse.app"
|
|
version = libs.versions.composeAppVersion.get()
|
|
description = "Compose Multiplatform Test-Client"
|
|
extra["displayname"] = "Books App"
|
|
extra["copyright"] = "Copyright (c) 2026 Hartmut Bauer"
|
|
|
|
kotlin {
|
|
jvm()
|
|
|
|
// @OptIn(ExperimentalWasmDsl::class)
|
|
// wasmJs {
|
|
// browser()
|
|
// binaries.executable()
|
|
// }
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
implementation(masterLibs.utilLibrary)
|
|
|
|
implementation(libs.compose.runtime)
|
|
implementation(libs.compose.foundation)
|
|
implementation(libs.compose.material3)
|
|
implementation(libs.compose.ui)
|
|
implementation(libs.compose.components.resources)
|
|
implementation(libs.compose.uiToolingPreview)
|
|
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
|
implementation(libs.androidx.lifecycle.runtimeCompose)
|
|
|
|
implementation(libs.ktor.client)
|
|
implementation(libs.ktor.clientCio)
|
|
implementation(libs.ktor.clientAuth)
|
|
// implementation(libs.ktor.clientLogging)
|
|
implementation(libs.ktor.clientContentNegotiation)
|
|
implementation(libs.ktor.serializationJson)
|
|
implementation(libs.ktor.serverCore)
|
|
implementation(libs.ktor.serverCio)
|
|
|
|
implementation(project.dependencies.platform(libs.koin.bom))
|
|
implementation(libs.koin.core)
|
|
implementation(libs.koin.annotations)
|
|
implementation(libs.koin.compose)
|
|
implementation(libs.koin.compose.viewmodel)
|
|
// implementation(libs.koin.compose.viewmodel.navigation)
|
|
|
|
implementation(libs.kotlin.logging)
|
|
implementation(libs.logback)
|
|
implementation(projects.shared)
|
|
}
|
|
// commonTest.dependencies {
|
|
// implementation(libs.kotlin.test)
|
|
// }
|
|
jvmMain.dependencies {
|
|
implementation(compose.desktop.currentOs)
|
|
implementation(libs.kotlinx.coroutinesSwing)
|
|
// implementation(libs.ktor.clientJava) // ??
|
|
implementation(libs.ktor.serverAuthJwt) // nicht f. js, wasmJs
|
|
}
|
|
// wasmJsMain.dependencies {
|
|
// implementation(libs.ktor.clientJs)
|
|
// }
|
|
|
|
}
|
|
jvmToolchain(masterLibs.versions.javaVersion.get().toInt())
|
|
}
|
|
|
|
|
|
compose.desktop {
|
|
application {
|
|
mainClass = "net.keinekekse.app.MainKt"
|
|
|
|
nativeDistributions {
|
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
|
packageName = project.name
|
|
packageVersion = project.version.toString()
|
|
}
|
|
}
|
|
}
|