From e3b5a754cd299cb9ea109842681567c7495ae109 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 13 Feb 2020 12:14:19 +0300 Subject: [PATCH] [Gradle, JS] Register executable tasks for binaries --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 21 ++++++++++--------- .../targets/js/ir/KotlinJsBinaryContainer.kt | 13 ++++++------ 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 4ff39ad37d5..5204bd82351 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -38,7 +38,6 @@ import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin import org.jetbrains.kotlin.gradle.targets.js.dsl.BuildVariantKind -import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget @@ -267,7 +266,9 @@ internal class Kotlin2JsSourceSetProcessor( kotlinCompilation: AbstractKotlinCompilation<*>, private val kotlinPluginVersion: String ) : KotlinSourceSetProcessor( - tasksProvider, taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.", kotlinCompilation = kotlinCompilation + tasksProvider, + taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.", + kotlinCompilation = kotlinCompilation ) { override fun doRegisterTask( project: Project, @@ -349,15 +350,15 @@ internal class KotlinJsIrSourceSetProcessor( it.dependsOn(kotlinTask) } - val compilation = kotlinCompilation as KotlinJsIrCompilation - - (compilation.target as KotlinJsIrTarget).binaries.all { binary -> - registerKotlinCompileTask( - binary.linkTaskName - ) { project, name, action -> - registerJsLink(project, name, binary.type, action) + (kotlinCompilation.target as KotlinJsIrTarget).binaries + .matching { it.compilation == kotlinCompilation } + .all { binary -> + registerKotlinCompileTask( + binary.linkTaskName + ) { project, name, action -> + registerJsLink(project, name, binary.type, action) + } } - } // outputFile can be set later during the configuration phase, get it only after the phase: project.runOnceAfterEvaluated("KotlinJsIrSourceSetProcessor.doTargetSpecificProcessing", kotlinTask) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt index 811880196d5..4c817ea9365 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsBinaryContainer.kt @@ -35,20 +35,25 @@ constructor( private val defaultTestCompilation: KotlinJsCompilation get() = target.compilations.getByName(KotlinCompilation.TEST_COMPILATION_NAME) - fun executable() = createBinaries( + fun executable( + compilation: KotlinJsCompilation = defaultCompilation + ) = createBinaries( baseName = project.name, + compilation = compilation, jsBinaryType = JsBinaryType.EXECUTABLE, create = ::Executable ) internal fun testExecutable() = createBinaries( baseName = project.name, + compilation = defaultTestCompilation, jsBinaryType = JsBinaryType.TEST, create = ::TestExecutable ) private fun createBinaries( baseName: String, + compilation: KotlinJsCompilation, buildVariantKinds: Collection = listOf(PRODUCTION, DEVELOPMENT), jsBinaryType: JsBinaryType, create: (name: String, buildVariantKind: BuildVariantKind, compilation: KotlinJsCompilation) -> T @@ -64,12 +69,6 @@ constructor( "Cannot create binary $name: binary with such a name already exists" } - val compilation = if (jsBinaryType == JsBinaryType.TEST) { - defaultTestCompilation - } else { - defaultCompilation - } - val binary = create(name, buildVariantKind, compilation) add(binary) nameToBinary[binary.name] = binary