import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.compose) alias(libs.plugins.kotlin.compose) } kotlin { @OptIn(ExperimentalWasmDsl::class) wasmJs { browser() binaries.executable() } sourceSets { commonMain.dependencies { implementation(project(":shared")) implementation("org.jetbrains.compose.runtime:runtime:1.11.1") implementation("org.jetbrains.compose.foundation:foundation:1.11.1") implementation("org.jetbrains.compose.material3:material3:1.9.0") implementation("org.jetbrains.compose.ui:ui:1.11.1") } wasmJsMain.dependencies { implementation(project(":shared_ui")) } } } /* * The directory produced by wasmJsBrowserDistribution. * * This is deliberately kept here rather than being referenced by * the server project. The web project owns its build layout. */ val webDistributionDirectory = layout.buildDirectory.dir("dist/wasmJs/productionExecutable") /* * Expose the web distribution as an outgoing artifact. * * Other projects can consume: * * project(path = ":web", configuration = "webDistribution") * * without knowing where the files actually live. */ val webDistributionTask = tasks.named("wasmJsBrowserDistribution") configurations { create("webDistribution") { isCanBeConsumed = true isCanBeResolved = false } } artifacts { add( "webDistribution", webDistributionDirectory ) { builtBy(webDistributionTask) } }