[Gradle, Wasm] Fix copying wasm file to destination dir

^KT-65889 fixed
This commit is contained in:
Ilya Goncharov
2024-02-19 19:41:16 +04:00
committed by Space Team
parent 6b19b8b9d0
commit bca785a87c
4 changed files with 28 additions and 5 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution
import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.util.modify
import org.junit.jupiter.api.DisplayName
@@ -147,7 +148,7 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
project("new-mpp-wasm-js", gradleVersion) {
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
buildGradleKts.modify {
it.replace("wasmJs {", "wasmJs {\napplyBinaryen()")
it.replace("<JsEngine>", "d8")
}
build("assemble") {
@@ -164,4 +165,25 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
}
}
}
@DisplayName("Check js target with browser")
@GradleTest
fun jsTargetWithBrowser(gradleVersion: GradleVersion) {
project("new-mpp-wasm-js", gradleVersion) {
buildGradleKts.modify(::transformBuildScriptWithPluginsDsl)
buildGradleKts.modify {
it.replace("<JsEngine>", "browser")
}
build("assemble") {
assertTasksExecuted(":compileProductionExecutableKotlinWasmJs")
assertTasksExecuted(":compileProductionExecutableKotlinWasmJsOptimize")
assertTasksExecuted(":wasmJsBrowserDistribution")
assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/redefined-wasm-module-name.wasm")
assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/new-mpp-wasm-js.js")
assertFileInProjectExists("build/${Distribution.DIST}/wasmJs/productionExecutable/new-mpp-wasm-js.js.map")
}
}
}
}
@@ -1653,6 +1653,9 @@ open class NewMultiplatformIT : BaseGradleIT() {
) {
setupWorkingDir()
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
gradleBuildScript().modify {
it.replace("<JsEngine>", "d8")
}
build("build") {
assertSuccessful()
assertTasksExecuted(":compileKotlinJs")
@@ -10,7 +10,7 @@ repositories {
kotlin {
wasmJs {
moduleName = "redefined-wasm-module-name"
d8 {
<JsEngine> {
}
binaries.executable()
}
@@ -233,9 +233,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
binary.linkSyncTask.zip(binary.linkTask) { linkSyncTask, linkTask ->
val moduleNameProvider = linkTask.compilerOptions.moduleName
linkSyncTask.destinationDirectory.zip(moduleNameProvider) { destDir, moduleName ->
moduleName.map {
destDir.resolve("$it.wasm")
}
destDir.resolve("$moduleName.wasm")
}
}
)