From 3d30598774b2bcccb9b2d1b869c294bac49e0c2a Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 18 Feb 2020 19:12:51 +0300 Subject: [PATCH] [Gradle, JS] Js compiler type in interface --- .../gradle/plugin/KotlinJsCompilerTypeHolder.kt | 10 ++++++++++ .../kotlin/gradle/dsl/KotlinProjectExtension.kt | 15 +++++++-------- .../kotlin/gradle/targets/js/KotlinJsPlugin.kt | 2 +- 3 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsCompilerTypeHolder.kt diff --git a/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsCompilerTypeHolder.kt b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsCompilerTypeHolder.kt new file mode 100644 index 00000000000..4f532d01a0b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-api/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsCompilerTypeHolder.kt @@ -0,0 +1,10 @@ +/* + * Copyright 2010-2020 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.plugin + +interface KotlinJsCompilerTypeHolder { + val defaultJsCompilerType: JsCompilerType +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt index 6dba63c707f..415cb034353 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinProjectExtension.kt @@ -21,11 +21,8 @@ import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.Project import org.gradle.api.internal.plugins.DslObject import org.gradle.util.ConfigureUtil -import org.jetbrains.kotlin.gradle.plugin.JsCompilerType +import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.JsCompilerType.* -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetContainer -import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinAndroidTarget import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsSingleTargetPreset import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget @@ -91,17 +88,19 @@ open class Kotlin2JsProjectExtension : KotlinSingleJavaTargetExtension() { open fun target(body: KotlinWithJavaTarget.() -> Unit) = target.run(body) } -open class KotlinJsProjectExtension : KotlinSingleTargetExtension() { +open class KotlinJsProjectExtension : + KotlinSingleTargetExtension(), + KotlinJsCompilerTypeHolder { lateinit var irPreset: KotlinJsIrSingleTargetPreset lateinit var legacyPreset: KotlinJsSingleTargetPreset override lateinit var target: KotlinJsTargetDsl - internal lateinit var defaultCompilerType: JsCompilerType + override lateinit var defaultJsCompilerType: JsCompilerType open fun js( - compiler: JsCompilerType = defaultCompilerType, + compiler: JsCompilerType = defaultJsCompilerType, body: KotlinJsTargetDsl.() -> Unit ) { val target: KotlinJsTargetDsl = when (compiler) { @@ -133,7 +132,7 @@ open class KotlinJsProjectExtension : KotlinSingleTargetExtension() { open fun js( body: KotlinJsTargetDsl.() -> Unit - ) = js(compiler = defaultCompilerType, body = body) + ) = js(compiler = defaultJsCompilerType, body = body) @Deprecated("Use js instead", ReplaceWith("js(body)")) open fun target(body: KotlinJsTargetDsl.() -> Unit) = js(body) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt index 7e44086d610..2212a636db0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsPlugin.kt @@ -36,7 +36,7 @@ open class KotlinJsPlugin( kotlinExtension.apply { irPreset = KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion) legacyPreset = KotlinJsSingleTargetPreset(project, kotlinPluginVersion) - defaultCompilerType = PropertiesProvider(project).jsCompiler + defaultJsCompilerType = PropertiesProvider(project).jsCompiler } // Explicitly create configurations for main and test