[Gradle, JS] Use binaries for wasi with KotlinJsIrCompilation

This commit is contained in:
Ilya Goncharov
2023-11-20 17:08:52 +01:00
committed by Space Team
parent 5ea59f57d6
commit 957d3c5610
3 changed files with 19 additions and 6 deletions
@@ -25,7 +25,8 @@ import javax.inject.Inject
open class KotlinJsCompilation @Inject internal constructor(
compilation: KotlinCompilationImpl
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation) {
) : AbstractKotlinCompilationToRunnableFiles<KotlinJsOptions>(compilation),
HasBinaries<KotlinJsBinaryContainer> {
@Suppress("UNCHECKED_CAST")
final override val compilerOptions: HasCompilerOptions<KotlinJsCompilerOptions>
@@ -39,7 +40,7 @@ open class KotlinJsCompilation @Inject internal constructor(
configure.execute(compilerOptions.options)
}
val binaries: KotlinJsBinaryContainer =
override val binaries: KotlinJsBinaryContainer =
compilation.target.project.objects.newInstance(
KotlinJsBinaryContainer::class.java,
compilation.target,
@@ -10,6 +10,7 @@ import org.gradle.api.GradleException
import org.gradle.api.NamedDomainObjectContainer
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.HasBinaries
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
@@ -33,7 +34,10 @@ interface KotlinJsSubTargetContainerDsl : KotlinTarget {
fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit)
}
interface KotlinJsTargetDsl : KotlinTarget, KotlinTargetWithNodeJsDsl {
interface KotlinJsTargetDsl :
KotlinTarget,
KotlinTargetWithNodeJsDsl,
HasBinaries<KotlinJsBinaryContainer>{
var moduleName: String?
fun browser() = browser { }
@@ -55,8 +59,6 @@ interface KotlinJsTargetDsl : KotlinTarget, KotlinTargetWithNodeJsDsl {
fun generateTypeScriptDefinitions()
val binaries: KotlinJsBinaryContainer
@Deprecated(
message = "produceExecutable() was changed on binaries.executable()",
replaceWith = ReplaceWith("binaries.executable()"),
@@ -70,6 +72,8 @@ interface KotlinJsTargetDsl : KotlinTarget, KotlinTargetWithNodeJsDsl {
// Need to compatibility when users use KotlinJsCompilation specific in build script
override val compilations: NamedDomainObjectContainer<KotlinJsIrCompilation>
override val binaries: KotlinJsBinaryContainer
}
interface KotlinTargetWithNodeJsDsl {
@@ -6,11 +6,15 @@
package org.jetbrains.kotlin.gradle.targets.js.dsl
import org.gradle.api.Action
import org.gradle.api.NamedDomainObjectContainer
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.HasBinaries
import org.jetbrains.kotlin.gradle.targets.js.KotlinWasmTargetType
import org.jetbrains.kotlin.gradle.targets.js.binaryen.BinaryenExec
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
interface KotlinWasmTargetDsl : KotlinTarget {
interface KotlinWasmTargetDsl : KotlinTarget, HasBinaries<KotlinJsBinaryContainer> {
val wasmTargetType: KotlinWasmTargetType?
fun applyBinaryen() = applyBinaryen { }
@@ -20,4 +24,8 @@ interface KotlinWasmTargetDsl : KotlinTarget {
fn.execute(this)
}
}
override val compilations: NamedDomainObjectContainer<KotlinJsIrCompilation>
override val binaries: KotlinJsBinaryContainer
}