fixing Frontend und libs.versions.toml

This commit is contained in:
2025-10-07 15:26:12 +02:00
parent 829d0fe8ec
commit 245584ee82
20 changed files with 4151 additions and 60 deletions
+60 -9
View File
@@ -1,19 +1,36 @@
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
/**
* Shared Module: Gemeinsame Libraries und Utilities für alle Client-Features
* KEINE EXECUTABLE - ist eine Library für andere Module
*/
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.composeCompiler)
}
kotlin {
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
jvmToolchain(21)
// JVM Target für Desktop
jvm()
// JavaScript Target für Web
js(IR) {
browser()
nodejs()
}
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
wasmJs {
browser()
// WASM, nur wenn explizit aktiviert
if (enableWasm) {
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
wasmJs { browser() }
}
sourceSets {
@@ -25,14 +42,15 @@ kotlin {
implementation(libs.kotlinx.serialization.json)
// HTTP Client
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.contentNegotiation)
implementation(libs.ktor.client.serialization.kotlinx.json)
implementation(libs.ktor.client.logging)
implementation(libs.ktor.client.auth)
// implementation(libs.ktor.client.core)
// implementation(libs.ktor.client.contentNegotiation)
// implementation(libs.ktor.client.serialization.kotlinx.json)
// implementation(libs.ktor.client.logging)
// implementation(libs.ktor.client.auth)
// DateTime
implementation(libs.kotlinx.datetime)
}
commonTest.dependencies {
@@ -42,10 +60,43 @@ kotlin {
jsMain.dependencies {
implementation(libs.ktor.client.js)
// Compose für shared UI components
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
}
jvmMain.dependencies {
implementation(libs.ktor.client.cio)
// Compose für shared UI components
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
}
// WASM SourceSet, nur wenn aktiviert
if (enableWasm) {
val wasmJsMain = getByName("wasmJsMain")
wasmJsMain.dependencies {
implementation(libs.ktor.client.js) // WASM verwendet JS-Client [cite: 7]
// ✅ HINZUFÜGEN: Compose für shared UI components für WASM
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
}
}
}
}
// KMP Compile-Optionen
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_21)
freeCompilerArgs.addAll(
"-opt-in=kotlin.RequiresOptIn"
)
}
}