[Wasm] Add wasi kotlin.test target gradle buildscript

This commit is contained in:
Igor Yakovlev
2023-07-26 18:22:31 +02:00
committed by Zalim Bashorov
parent d1c7caf15c
commit f42d0b1ed4
11 changed files with 255 additions and 93 deletions
@@ -1,63 +0,0 @@
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
plugins {
kotlin("multiplatform")
}
val commonMainSources by task<Sync> {
from(
"$rootDir/libraries/kotlin.test/common/src",
"$rootDir/libraries/kotlin.test/annotations-common/src"
)
into("$buildDir/commonMainSources")
}
kotlin {
@Suppress("DEPRECATION")
@OptIn(org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl::class)
wasm("wasm") {
nodejs()
}
sourceSets {
named("commonMain") {
dependencies {
api(project(":kotlin-stdlib-wasm-js"))
}
kotlin.srcDir(commonMainSources.get().destinationDir)
}
named("wasmMain") {
dependencies {
api(project(":kotlin-stdlib-wasm-js"))
}
kotlin.srcDirs("$rootDir/libraries/kotlin.test/wasm/src")
kotlin.srcDirs("$rootDir/libraries/kotlin.test/wasm/js/main/kotlin/kotlin/test")
}
}
}
tasks.withType<KotlinCompile<*>>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-Xallow-kotlin-package",
"-opt-in=kotlin.ExperimentalMultiplatform",
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-Xwasm-target=wasm-js"
)
}
tasks.named("compileKotlinWasm", KotlinCompile::class.java) {
kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin-test"
dependsOn(commonMainSources)
}
tasks.register<Jar>("sourcesJar") {
dependsOn(commonMainSources)
archiveClassifier.set("sources")
from(kotlin.sourceSets["commonMain"].kotlin)
from(kotlin.sourceSets["wasmMain"].kotlin)
}
tasks.register<Jar>("emptyJavadocJar") {
archiveClassifier.set("javadoc")
}
@@ -0,0 +1,14 @@
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
plugins {
kotlin("multiplatform")
}
configureWasmKotlinTest(
wasmTargetParameter = "wasm-js",
wasmTargetAttribute = KotlinWasmTargetAttribute.js,
targetSourceDir = "$rootDir/libraries/kotlin.test/wasm/js/src",
stdDependencyName = ":kotlin-stdlib-wasm-js"
) { extensionBody ->
kotlin(extensionBody)
}
@@ -0,0 +1,14 @@
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
plugins {
kotlin("multiplatform")
}
configureWasmKotlinTest(
wasmTargetParameter = "wasm-wasi",
wasmTargetAttribute = KotlinWasmTargetAttribute.wasi,
targetSourceDir = "$rootDir/libraries/kotlin.test/wasm/wasi/src",
stdDependencyName = ":kotlin-stdlib-wasm-wasi"
) { extensionBody ->
kotlin(extensionBody)
}