From 27bb9a087adbbd65cf09e5e6e501da1996c0a508 Mon Sep 17 00:00:00 2001 From: Igor Yakovlev Date: Wed, 15 Jun 2022 19:52:01 +0200 Subject: [PATCH] [WASM] Mark wasm dsl as experimental --- .../KotlinTargetContainerWithWasmPresetFunctions.kt | 10 +++++++++- .../gradle/targets/js/dsl/ExperimentalWasmDsl.kt | 10 ++++++++++ .../org/jetbrains/kotlin/gradle/ConfigurationsTest.kt | 2 ++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/ExperimentalWasmDsl.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt index 553ebd00b04..c4aef391f91 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithWasmPresetFunctions.kt @@ -7,12 +7,13 @@ package org.jetbrains.kotlin.gradle.dsl import groovy.lang.Closure import org.gradle.util.ConfigureUtil +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinWasmTargetDsl -import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinWasmTargetPreset interface KotlinTargetContainerWithWasmPresetFunctions : KotlinTargetContainerWithPresetFunctions { + @ExperimentalWasmDsl fun wasm( name: String = "wasm", configure: KotlinWasmTargetDsl.() -> Unit = { } @@ -23,8 +24,15 @@ interface KotlinTargetContainerWithWasmPresetFunctions : KotlinTargetContainerWi configure ) + @ExperimentalWasmDsl fun wasm() = wasm("wasm") { } + + @ExperimentalWasmDsl fun wasm(name: String) = wasm(name) { } + + @ExperimentalWasmDsl fun wasm(name: String, configure: Closure<*>) = wasm(name) { ConfigureUtil.configure(configure, this) } + + @ExperimentalWasmDsl fun wasm(configure: Closure<*>) = wasm { ConfigureUtil.configure(configure, this) } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/ExperimentalWasmDsl.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/ExperimentalWasmDsl.kt new file mode 100644 index 00000000000..31dc81c6a5e --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/ExperimentalWasmDsl.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2022 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. + */ + +package org.jetbrains.kotlin.gradle.targets.js.dsl + +@RequiresOptIn(level = RequiresOptIn.Level.WARNING) +@Target(AnnotationTarget.FUNCTION) +annotation class ExperimentalWasmDsl diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ConfigurationsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ConfigurationsTest.kt index 7d1cf6d0ecf..a637dddacb0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ConfigurationsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/ConfigurationsTest.kt @@ -18,6 +18,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages import org.jetbrains.kotlin.gradle.targets.js.KotlinJsCompilerAttribute import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget +import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertNotNull @@ -56,6 +57,7 @@ class ConfigurationsTest : MultiplatformExtensionTest() { with(kotlin) { js("nodeJs", KotlinJsCompilerType.IR) js("browser", KotlinJsCompilerType.IR) + @OptIn(ExperimentalWasmDsl::class) wasm() val allJs = sourceSets.create("allJs")