Files
dopewarskt/web/build.gradle.kts
T

74 lines
1.8 KiB
Kotlin

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(project(":shared_ui"))
// UI Elements
implementation(libs.compose.runtime)
implementation(libs.compose.foundation)
implementation(libs.compose.material3)
implementation(libs.compose.ui)
// HTTP Client
implementation(libs.ktor.serialization.kotlinx.json)
implementation(libs.ktor.client.core)
// implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.content.negotiation)
}
wasmJsMain.dependencies {
}
}
}
/*
* 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)
}
}