feat: füge Wasm/JS-Feature-Toggle hinzu, optimiere Gradle-Build-Zeit durch bedingte Task-Deaktivierung

Signed-off-by: StefanMoCoAt <stefan.mo.co@gmail.com>
This commit is contained in:
2026-04-16 19:18:54 +02:00
parent 0426d4ee9a
commit cfc412878f
4 changed files with 121 additions and 43 deletions
@@ -9,63 +9,71 @@ plugins {
alias(libs.plugins.kotlinSerialization)
}
val isWasmEnabled = findProperty("enableWasm")?.toString()?.toBoolean() ?: false
kotlin {
jvm()
js(IR) {
binaries.library()
browser {
testTask {
enabled = false
if (isWasmEnabled) {
js(IR) {
binaries.library()
browser {
testTask {
enabled = false
}
}
}
}
wasmJs {
browser {
testTask {
enabled = false
wasmJs {
browser {
testTask {
enabled = false
}
}
binaries.executable()
}
binaries.executable()
}
sourceSets {
wasmJsMain.dependencies {
// Core-Module
implementation(projects.frontend.core.domain)
implementation(projects.frontend.core.designSystem)
implementation(projects.frontend.core.navigation)
implementation(projects.frontend.core.network)
implementation(projects.frontend.core.auth)
commonMain.dependencies {}
// Feature-Module (die öffentlich sein dürfen)
implementation(projects.frontend.features.veranstaltungFeature)
implementation(projects.frontend.features.turnierFeature)
implementation(projects.frontend.features.nennungFeature)
implementation(projects.frontend.features.billingFeature)
if (isWasmEnabled) {
wasmJsMain.dependencies {
// Core-Module
implementation(projects.frontend.core.domain)
implementation(projects.frontend.core.designSystem)
implementation(projects.frontend.core.navigation)
implementation(projects.frontend.core.network)
implementation(projects.frontend.core.auth)
// Compose Multiplatform
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(libs.compose.materialIconsExtended)
// Feature-Module (die öffentlich sein dürfen)
implementation(projects.frontend.features.veranstaltungFeature)
implementation(projects.frontend.features.turnierFeature)
implementation(projects.frontend.features.nennungFeature)
implementation(projects.frontend.features.billingFeature)
// DI (Koin)
implementation(libs.koin.core)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel)
// Compose Multiplatform
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(libs.compose.materialIconsExtended)
// Bundles
implementation(libs.bundles.kmp.common)
implementation(libs.bundles.compose.common)
}
// DI (Koin)
implementation(libs.koin.core)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel)
wasmJsTest.dependencies {
// Core-Module
implementation(projects.frontend.core.domain)
// Bundles
implementation(libs.bundles.kmp.common)
implementation(libs.bundles.compose.common)
}
wasmJsTest.dependencies {
// Core-Module
implementation(projects.frontend.core.domain)
}
}
}
}