From fa335b536007e528b7d0ad579e5e692938b1d433 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 18 Feb 2020 19:13:24 +0300 Subject: [PATCH] [Gradle, JS] Js default compiler type for mpp --- .../gradle/dsl/mppPresetFunctionsCodegen.kt | 15 ++++++++++----- .../KotlinTargetContainerWithPresetFunctions.kt | 5 ++++- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt index 4175f17b3ba..d4163899643 100644 --- a/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt +++ b/libraries/tools/kotlin-gradle-plugin-dsl-codegen/src/main/kotlin/org/jetbrains/kotlin/generators/gradle/dsl/mppPresetFunctionsCodegen.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.generators.gradle.dsl import groovy.lang.Closure import org.gradle.util.ConfigureUtil +import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerTypeHolder import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets import java.io.File @@ -14,7 +15,10 @@ fun main() { generateKotlinTargetContainerWithPresetFunctionsInterface() } -private val parentInterface = KotlinTargetsContainerWithPresets::class +private val parentInterfaces = listOf( + KotlinTargetsContainerWithPresets::class, + KotlinJsCompilerTypeHolder::class +) private val presetsProperty = KotlinTargetsContainerWithPresets::presets.name @@ -24,15 +28,16 @@ private fun generateKotlinTargetContainerWithPresetFunctionsInterface() { generatePresetFunctions(it, presetsProperty, "configureOrCreate") } - val parentInterfaceName = - typeName(parentInterface.java.canonicalName) + val parentInterfaceNames = + parentInterfaces.map { typeName(it.java.canonicalName) } + val className = typeName("org.jetbrains.kotlin.gradle.dsl.KotlinTargetContainerWithPresetFunctions") val imports = allPresetEntries .flatMap { it.typeNames() } - .plus(parentInterfaceName) + .plus(parentInterfaceNames) .plus(typeName(ConfigureUtil::class.java.canonicalName)) .plus(typeName(Closure::class.java.canonicalName)) .filter { it.packageName() != className.packageName() } @@ -46,7 +51,7 @@ private fun generateKotlinTargetContainerWithPresetFunctionsInterface() { "package ${className.packageName()}", imports, generatedCodeWarning, - "interface ${className.renderShort()} : ${parentInterfaceName.renderShort()} {", + "interface ${className.renderShort()} : ${parentInterfaceNames.joinToString { it.renderShort() }} {", functions.joinToString("\n\n") { it.indented(4) }, "}" ).joinToString("\n\n") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt index c80d377663e..784de03f848 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/dsl/KotlinTargetContainerWithPresetFunctions.kt @@ -2,13 +2,16 @@ package org.jetbrains.kotlin.gradle.dsl import groovy.lang.Closure import org.gradle.util.ConfigureUtil +import org.jetbrains.kotlin.gradle.plugin.JsCompilerType +import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerTypeHolder +import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset import org.jetbrains.kotlin.gradle.plugin.KotlinTargetsContainerWithPresets import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget // DO NOT EDIT MANUALLY! Generated by org.jetbrains.kotlin.generators.gradle.dsl.MppPresetFunctionsCodegenKt -interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithPresets { +interface KotlinTargetContainerWithPresetFunctions : KotlinTargetsContainerWithPresets, KotlinJsCompilerTypeHolder { fun jvm( name: String = "jvm",