You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.0 KiB

import org.jetbrains.compose.gradle.standardConf
plugins {
kotlin("multiplatform")
id("org.jetbrains.compose")
}
val SKIKO_VERSION: String by project
val skikoWasm by configurations.creating
dependencies {
skikoWasm("org.jetbrains.skiko:skiko-js-wasm-runtime:${SKIKO_VERSION}")
}
val copySkikoResources = tasks.register("copySkikoResources", Copy::class) {
from(skikoWasm.map { zipTree(it) }) {
include("skiko.wasm")
include("skiko.js")
}
destinationDir = file("${rootProject.buildDir}/skiko")
}
tasks.withType<org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest>().configureEach {
dependsOn(copySkikoResources)
}
kotlin {
jvm()
js(IR) {
browser() {
testTask {
useKarma {
standardConf()
}
}
}
binaries.executable()
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(kotlin("stdlib-common"))
implementation("org.jetbrains.skiko:skiko:${SKIKO_VERSION}")
implementation(compose.ui)
implementation(compose.foundation)
implementation(compose.material)
}
}
val jsMain by getting {
dependencies {
implementation(project(":internal-web-core-runtime"))
implementation(kotlin("stdlib-js"))
}
}
val jsTest by getting {
dependencies {
implementation(project(":test-utils"))
implementation(kotlin("test-js"))
}
}
val jvmMain by getting {
dependencies {
implementation(compose.desktop.currentOs)
}
}
all {
languageSettings {
useExperimentalAnnotation("org.jetbrains.compose.web.testutils.ComposeWebExperimentalTestsApi")
}
}
}
}