[Wasm] Add wasi stdlib target gradle buildscript

KT-56608
This commit is contained in:
Igor Yakovlev
2023-07-31 14:51:56 +02:00
committed by Zalim Bashorov
parent 18a9c1916e
commit d1c7caf15c
14 changed files with 328 additions and 226 deletions
+2 -1
View File
@@ -325,7 +325,8 @@ extra["compilerArtifactsForIde"] = listOfNotNull(
":plugins:parcelize:parcelize-runtime",
":kotlin-stdlib-common",
":kotlin-stdlib",
":kotlin-stdlib-wasm",
":kotlin-stdlib-wasm-js",
":kotlin-stdlib-wasm-wasi",
":kotlin-test",
":kotlin-daemon",
":kotlin-compiler",
+2 -1
View File
@@ -56,7 +56,8 @@
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-js" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-jvm-minimal-for-test" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-wasm" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-wasm-js" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-stdlib-wasm-wasi" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-test" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-test-annotations-common" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
<trust group="org.jetbrains.kotlin" name="kotlin-test-common" version="1.9.[2,3]?[0-9](-.+)?" regex="true"/>
+1 -1
View File
@@ -321,7 +321,7 @@ val (wasmApi, wasmRuntime) = listOf("api", "runtime").map { usage ->
wasmRuntime.extendsFrom(wasmApi)
dependencies {
wasmApi(project(":kotlin-stdlib-wasm"))
wasmApi(project(":kotlin-stdlib-wasm-js"))
}
artifacts {
+9 -7
View File
@@ -20,18 +20,19 @@ kotlin {
}
sourceSets {
named("commonMain") {
named("commonMain") {
dependencies {
api(project(":kotlin-stdlib-wasm"))
api(project(":kotlin-stdlib-wasm-js"))
}
kotlin.srcDir(commonMainSources.get().destinationDir)
}
named("wasmMain") {
dependencies {
api(project(":kotlin-stdlib-wasm"))
api(project(":kotlin-stdlib-wasm-js"))
}
kotlin.srcDir("$rootDir/libraries/kotlin.test/wasm/src")
kotlin.srcDirs("$rootDir/libraries/kotlin.test/wasm/src")
kotlin.srcDirs("$rootDir/libraries/kotlin.test/wasm/js/main/kotlin/kotlin/test")
}
}
}
@@ -40,12 +41,13 @@ tasks.withType<KotlinCompile<*>>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-Xallow-kotlin-package",
"-opt-in=kotlin.ExperimentalMultiplatform",
"-opt-in=kotlin.contracts.ExperimentalContracts"
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-Xwasm-target=wasm-js"
)
}
tasks.named("compileKotlinWasm") {
(this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin-test"
tasks.named("compileKotlinWasm", KotlinCompile::class.java) {
kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin-test"
dependsOn(commonMainSources)
}
-207
View File
@@ -1,207 +0,0 @@
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
plugins {
`maven-publish`
kotlin("multiplatform")
}
description = "Kotlin Standard Library for experimental WebAssembly platform"
val unimplementedNativeBuiltIns =
(file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/wasm/builtins/kotlin/").list())
.map { "core/builtins/native/kotlin/$it" }
val builtInsSources by task<Sync> {
val sources = listOf(
"core/builtins/src/kotlin/"
) + unimplementedNativeBuiltIns
val excluded = listOf(
// JS-specific optimized version of emptyArray() already defined
"ArrayIntrinsics.kt",
// Included with K/N collections
"Collections.kt", "Iterator.kt", "Iterators.kt"
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
excluded.forEach {
exclude(it)
}
}
}
into("$buildDir/builtInsSources")
}
val commonMainSources by task<Sync> {
val sources = listOf(
"libraries/stdlib/common/src/",
"libraries/stdlib/src/kotlin/",
"libraries/stdlib/unsigned/"
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
}
}
into("$buildDir/commonMainSources")
dependsOn(":prepare:build.version:writeStdlibVersion")
}
val commonTestSources by task<Sync> {
val sources = listOf(
"libraries/stdlib/test/",
"libraries/stdlib/common/test/"
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
// exclusions due to KT-51647
exclude("generated/minmax")
exclude("collections/MapTest.kt")
}
}
into("$buildDir/commonTestSources")
}
D8RootPlugin.apply(rootProject).version = v8Version
kotlin {
@Suppress("DEPRECATION")
@OptIn(org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl::class)
wasm("wasm") {
nodejs()
}
fun KotlinSourceSet.addWasmMainDirs() {
kotlin.srcDirs("builtins", "internal", "runtime", "src", "stubs")
kotlin.srcDirs("$rootDir/libraries/stdlib/native-wasm/src")
kotlin.srcDirs(files(builtInsSources.map { it.destinationDir }))
}
sourceSets {
named("wasmMain") {
addWasmMainDirs()
// kotlin.srcDirs("js/builtins/kotlin", "js/internal", "js/src/kotlin", "js/src/kotlinx", "js/src/org.w3c")
kotlin.srcDirs("wasi/builtins/kotlin", "wasi/internal", "wasi/src/kotlin", "wasi/src/kotlinx")
}
named("commonMain") {
kotlin.srcDirs(files(commonMainSources.map { it.destinationDir }))
}
named("commonTest") {
dependencies {
api(project(":kotlin-test:kotlin-test-wasm"))
}
kotlin.srcDir(files(commonTestSources.map { it.destinationDir }))
}
named("wasmTest") {
dependencies {
api(project(":kotlin-test:kotlin-test-wasm"))
}
kotlin.srcDir("$rootDir/libraries/stdlib/wasm/test/")
kotlin.srcDir("$rootDir/libraries/stdlib/native-wasm/test/")
}
}
}
tasks.named("compileKotlinWasm", KotlinCompile::class) {
// TODO: enable explicit API mode
kotlinOptions.allWarningsAsErrors = true
}
tasks.named("compileTestKotlinWasm", KotlinCompile::class) {
// TODO: fix all warnings, enable and -Werror
kotlinOptions.suppressWarnings = true
}
tasks.withType<KotlinCompile<*>>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-Xallow-kotlin-package",
"-opt-in=kotlin.ExperimentalMultiplatform",
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalUnsignedTypes",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.io.encoding.ExperimentalEncodingApi",
)
}
tasks.named("compileKotlinWasm") {
(this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
dependsOn(commonMainSources)
dependsOn(builtInsSources)
}
val compileTestKotlinWasm by tasks.existing(KotlinCompile::class) {
val sources: FileCollection = kotlin.sourceSets["commonTest"].kotlin
doFirst {
// Note: common test sources are copied to the actual source directory by commonMainSources task,
// so can't do this at configuration time:
kotlinOptions.freeCompilerArgs += listOf("-Xcommon-sources=${sources.joinToString(",")}")
}
}
val compileTestDevelopmentExecutableKotlinWasm = tasks.named<KotlinJsIrLink>("compileTestDevelopmentExecutableKotlinWasm") {
(this as KotlinCompile<*>).kotlinOptions.freeCompilerArgs += listOf("-Xwasm-enable-array-range-checks")
}
val runtimeElements by configurations.creating {
attributes {
attributes.attribute(KotlinWasmTargetAttribute.wasmTargetAttribute, KotlinWasmTargetAttribute.js)
}
}
val apiElements by configurations.creating {
attributes {
attributes.attribute(KotlinWasmTargetAttribute.wasmTargetAttribute, KotlinWasmTargetAttribute.js)
}
}
publish(sbom = false) {
pom.packaging = "klib"
artifact(tasks.named("wasmJar")) {
extension = "klib"
}
}
configureSbom(
gradleConfigurations = setOf(runtimeElements.name)
)
afterEvaluate {
// cleanup default publications
// TODO: remove after mpp plugin allows avoiding their creation at all, KT-29273
publishing {
publications.removeAll { it.name != "Main" }
}
tasks.withType<AbstractPublishToMaven> {
if (publication.name != "Main") this.enabled = false
}
tasks.named("publish") {
doFirst {
publishing.publications {
if (singleOrNull()?.name != "Main") {
throw GradleException("kotlin-stdlib-wasm should have only one publication, found $size: ${joinToString { it.name }}")
}
}
}
}
}
+47
View File
@@ -0,0 +1,47 @@
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
plugins {
`maven-publish`
kotlin("multiplatform")
}
description = "Kotlin Standard Library for experimental WebAssembly JS platform"
D8RootPlugin.apply(rootProject).version = v8Version
val targetDependentSources = listOf("builtins/kotlin", "internal", "src/kotlin", "src/kotlinx", "src/org.w3c").map {
"$rootDir/libraries/stdlib/wasm/js/$it"
}
configureWasmStdLib(
wasmTargetParameter = "wasm-js",
wasmTargetAttribute = KotlinWasmTargetAttribute.js,
targetDependentSources = targetDependentSources,
targetDependentTestSources = listOf("$rootDir/libraries/stdlib/wasm/testJs/"),
kotlinTestDependencyName = ":kotlin-test:kotlin-test-wasm-js"
) { extensionBody ->
kotlin(extensionBody)
}
afterEvaluate {
// cleanup default publications
// TODO: remove after mpp plugin allows avoiding their creation at all, KT-29273
publishing {
publications.removeAll { it.name != "Main" }
}
tasks.withType<AbstractPublishToMaven> {
if (publication.name != "Main") this.enabled = false
}
tasks.named("publish") {
doFirst {
publishing.publications {
if (singleOrNull()?.name != "Main") {
throw GradleException("kotlin-stdlib-wasm should have only one publication, found $size: ${joinToString { it.name }}")
}
}
}
}
}
@@ -0,0 +1,47 @@
import org.jetbrains.kotlin.gradle.targets.js.d8.D8RootPlugin
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
plugins {
`maven-publish`
kotlin("multiplatform")
}
description = "Kotlin Standard Library for experimental WebAssembly WASI platform"
D8RootPlugin.apply(rootProject).version = v8Version
val targetDependentSources = listOf("builtins/kotlin", "src/kotlin", "src/kotlinx").map {
"$rootDir/libraries/stdlib/wasm/wasi/$it"
}
configureWasmStdLib(
wasmTargetParameter = "wasm-wasi",
wasmTargetAttribute = KotlinWasmTargetAttribute.wasi,
targetDependentSources = targetDependentSources,
targetDependentTestSources = emptyList(),
kotlinTestDependencyName = ":kotlin-test:kotlin-test-wasm-wasi"
) { extensionBody ->
kotlin(extensionBody)
}
afterEvaluate {
// cleanup default publications
// TODO: remove after mpp plugin allows avoiding their creation at all, KT-29273
publishing {
publications.removeAll { it.name != "Main" }
}
tasks.withType<AbstractPublishToMaven> {
if (publication.name != "Main") this.enabled = false
}
tasks.named("publish") {
doFirst {
publishing.publications {
if (singleOrNull()?.name != "Main") {
throw GradleException("kotlin-stdlib-wasm should have only one publication, found $size: ${joinToString { it.name }}")
}
}
}
}
}
@@ -31,7 +31,7 @@ internal const val KOTLIN_STDLIB_MODULE_NAME = "kotlin-stdlib"
internal const val KOTLIN_STDLIB_JDK7_MODULE_NAME = "kotlin-stdlib-jdk7"
internal const val KOTLIN_STDLIB_JDK8_MODULE_NAME = "kotlin-stdlib-jdk8"
internal const val KOTLIN_STDLIB_JS_MODULE_NAME = "kotlin-stdlib-js"
internal const val KOTLIN_STDLIB_WASM_MODULE_NAME = "kotlin-stdlib-wasm"
internal const val KOTLIN_STDLIB_WASM_MODULE_NAME = "kotlin-stdlib-wasm-js"
internal const val KOTLIN_ANDROID_JVM_STDLIB_MODULE_NAME = KOTLIN_STDLIB_MODULE_NAME
internal fun Project.configureStdlibDefaultDependency(
@@ -3,11 +3,11 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-wasm</artifactId>
<artifactId>kotlin-stdlib-wasm-js</artifactId>
<version>ArtifactsTest.version</version>
<packaging>klib</packaging>
<name>Kotlin Stdlib Wasm</name>
<description>Kotlin Standard Library for experimental WebAssembly platform</description>
<name>Kotlin Stdlib Wasm Js</name>
<description>Kotlin Standard Library for experimental WebAssembly JS platform</description>
<url>https://kotlinlang.org/</url>
<licenses>
<license>
@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-wasm-wasi</artifactId>
<version>ArtifactsTest.version</version>
<packaging>klib</packaging>
<name>Kotlin Stdlib Wasm Wasi</name>
<description>Kotlin Standard Library for experimental WebAssembly WASI platform</description>
<url>https://kotlinlang.org/</url>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>Kotlin Team</name>
<organization>JetBrains</organization>
<organizationUrl>https://www.jetbrains.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/JetBrains/kotlin.git</connection>
<developerConnection>scm:git:https://github.com/JetBrains/kotlin.git</developerConnection>
<url>https://github.com/JetBrains/kotlin</url>
</scm>
</project>
@@ -64,7 +64,8 @@ val kotlinGradlePluginAndItsRequired = arrayOf(
":kotlin-stdlib",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-stdlib-wasm",
":kotlin-stdlib-wasm-js",
":kotlin-stdlib-wasm-wasi",
":examples:annotation-processor-example",
":kotlin-assignment-compiler-plugin.embeddable",
":kotlin-allopen-compiler-plugin.embeddable",
@@ -0,0 +1,178 @@
/*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
import org.gradle.api.Project
import org.gradle.api.tasks.Sync
import org.gradle.kotlin.dsl.withType
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetAttribute
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
private fun Project.createBuiltInsSources() = tasks.register("builtInsSources", Sync::class.java) {
val unimplementedNativeBuiltIns =
(file("$rootDir/core/builtins/native/kotlin/").list().toSortedSet() - file("$rootDir/libraries/stdlib/wasm/builtins/kotlin/").list())
.map { "core/builtins/native/kotlin/$it" }
val sources = listOf(
"core/builtins/src/kotlin/"
) + unimplementedNativeBuiltIns
val excluded = listOf(
// JS-specific optimized version of emptyArray() already defined
"ArrayIntrinsics.kt",
// Included with K/N collections
"Collections.kt", "Iterator.kt", "Iterators.kt"
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
excluded.forEach {
exclude(it)
}
}
}
into("$buildDir/builtInsSources")
}
private fun Project.createCommonMainSources() = tasks.register("commonMainSources", Sync::class.java) {
val sources = listOf(
"libraries/stdlib/common/src/",
"libraries/stdlib/src/kotlin/",
"libraries/stdlib/unsigned/",
"libraries/stdlib/wasm/builtins/",
"libraries/stdlib/wasm/internal/",
"libraries/stdlib/wasm/runtime/",
"libraries/stdlib/wasm/src/",
"libraries/stdlib/wasm/stubs/",
"libraries/stdlib/native-wasm/src/",
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
}
}
into("$buildDir/commonMainSources")
dependsOn(":prepare:build.version:writeStdlibVersion")
}
private fun Project.createCommonTestSources() = tasks.register("commonTestSources", Sync::class.java) {
val sources = listOf(
"libraries/stdlib/test/",
"libraries/stdlib/common/test/",
"libraries/stdlib/wasm/test/",
"libraries/stdlib/native-wasm/test/",
)
sources.forEach { path ->
from("$rootDir/$path") {
into(path.dropLastWhile { it != '/' })
// exclusions due to KT-51647
exclude("generated/minmax")
exclude("collections/MapTest.kt")
}
}
into("$buildDir/commonTestSources")
}
fun Project.configureWasmStdLib(
wasmTargetParameter: String,
wasmTargetAttribute: KotlinWasmTargetAttribute,
targetDependentSources: List<String>,
targetDependentTestSources: List<String>,
kotlinTestDependencyName: String,
withKotlinMPP: (KotlinMultiplatformExtension.() -> Unit) -> Unit
) {
val builtInsSources = createBuiltInsSources()
val commonMainSources = createCommonMainSources()
val commonTestSources = createCommonTestSources()
withKotlinMPP {
@Suppress("DEPRECATION")
@OptIn(org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl::class)
wasm("wasm") {
nodejs()
attributes {
attribute(KotlinWasmTargetAttribute.wasmTargetAttribute, wasmTargetAttribute)
}
}
sourceSets.named("commonMain") {
kotlin.srcDirs(files(commonMainSources.map { it.destinationDir }))
kotlin.srcDirs(files(builtInsSources.map { it.destinationDir }))
}
sourceSets.named("wasmMain") {
kotlin.srcDirs(targetDependentSources)
}
sourceSets.named("commonTest") {
dependencies {
api(project(kotlinTestDependencyName))
}
kotlin.srcDir(files(commonTestSources.map { it.destinationDir }))
}
sourceSets.named("wasmTest") {
dependencies {
api(project(kotlinTestDependencyName))
}
kotlin.srcDirs(targetDependentTestSources)
}
}
tasks.named("compileKotlinWasm", KotlinCompile::class.java) {
// TODO: enable explicit API mode
kotlinOptions.allWarningsAsErrors = true
kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin"
dependsOn(commonMainSources)
dependsOn(builtInsSources)
}
tasks.named("compileTestKotlinWasm", KotlinCompile::class.java) {
// TODO: fix all warnings, enable and -Werror
kotlinOptions.suppressWarnings = true
}
tasks.withType<KotlinCompile<*>>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-Xallow-kotlin-package",
"-opt-in=kotlin.ExperimentalMultiplatform",
"-opt-in=kotlin.contracts.ExperimentalContracts",
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalUnsignedTypes",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.io.encoding.ExperimentalEncodingApi",
"-opt-in=kotlin.wasm.unsafe.UnsafeWasmMemoryApi",
"-Xwasm-target=$wasmTargetParameter"
)
}
tasks.named("compileTestDevelopmentExecutableKotlinWasm", KotlinJsIrLink::class.java) {
kotlinOptions.freeCompilerArgs += listOf("-Xwasm-enable-array-range-checks")
}
val runtimeElements = configurations.create("runtimeElements") { }
configurations.create("apiElements") { }
publish(sbom = false) {
pom.packaging = "klib"
artifact(tasks.named("wasmJar")) {
extension = "klib"
}
}
configureSbom(
gradleConfigurations = setOf(runtimeElements.name)
)
}
+4 -2
View File
@@ -584,7 +584,8 @@ if (buildProperties.inJpsBuildIdeaSync) {
":kotlin-stdlib",
":kotlin-dom-api-compat",
":kotlin-stdlib-js-ir-minimal-for-test",
":kotlin-stdlib-wasm",
":kotlin-stdlib-wasm-js",
":kotlin-stdlib-wasm-wasi",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-stdlib:samples",
@@ -609,7 +610,8 @@ if (buildProperties.inJpsBuildIdeaSync) {
if (!stdlibMpp) project(':kotlin-stdlib-js').projectDir = "$rootDir/libraries/stdlib/js-v1" as File
if (!stdlibMpp) project(':kotlin-stdlib-js-ir').projectDir = "$rootDir/libraries/stdlib/js-ir" as File
project(':kotlin-dom-api-compat').projectDir = "$rootDir/libraries/kotlin-dom-api-compat" as File
project(':kotlin-stdlib-wasm').projectDir = "$rootDir/libraries/stdlib/wasm" as File
project(':kotlin-stdlib-wasm-js').projectDir = "$rootDir/libraries/stdlib/wasm/js" as File
project(':kotlin-stdlib-wasm-wasi').projectDir = "$rootDir/libraries/stdlib/wasm/wasi" as File
project(':kotlin-stdlib-js-ir-minimal-for-test').projectDir = "$rootDir/libraries/stdlib/js-ir-minimal-for-test" as File
project(':kotlin-stdlib-jdk7').projectDir = "$rootDir/libraries/stdlib/jdk7" as File
project(':kotlin-stdlib-jdk8').projectDir = "$rootDir/libraries/stdlib/jdk8" as File
+2 -2
View File
@@ -87,8 +87,8 @@ sourceSets {
}
fun Test.setupWasmStdlib() {
dependsOn(":kotlin-stdlib-wasm:compileKotlinWasm")
systemProperty("kotlin.wasm.stdlib.path", "libraries/stdlib/wasm/build/classes/kotlin/wasm/main")
dependsOn(":kotlin-stdlib-wasm-js:compileKotlinWasm")
systemProperty("kotlin.wasm.stdlib.path", "libraries/stdlib/wasm/js/build/classes/kotlin/wasm/main")
dependsOn(":kotlin-test:kotlin-test-wasm:compileKotlinWasm")
systemProperty("kotlin.wasm.kotlin.test.path", "libraries/kotlin.test/wasm/build/classes/kotlin/wasm/main")
}