From bc22489aab9648634f7b6002d4b5c7a6bce6b086 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 26 Mar 2020 15:51:25 +0300 Subject: [PATCH] [Gradle, JS] Fix link task options for IR tooling --- .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 5 +++-- .../targets/js/ir/KotlinJsIrTargetConfigurator.kt | 5 +++-- .../kotlin/gradle/utils/DomainObjectSets.kt | 14 ++++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/DomainObjectSets.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt index 976d30bf507..ba83c0ccafd 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTarget.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +import org.jetbrains.kotlin.gradle.utils.matchingIsInstance import javax.inject.Inject open class KotlinJsIrTarget @@ -126,8 +127,8 @@ constructor( it.compileKotlinTask.configureCommonJsOptions() binaries - .filterIsInstance() - .forEach { + .matchingIsInstance() + .all { it.linkTask.configure { linkTask -> linkTask.configureCommonJsOptions() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt index 09286714420..2e38ac6dff0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinJsIrTargetConfigurator.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry import org.jetbrains.kotlin.gradle.testing.testTaskName +import org.jetbrains.kotlin.gradle.utils.matchingIsInstance open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) : KotlinOnlyTargetConfigurator(true, true, kotlinPluginVersion), @@ -74,8 +75,8 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) : } it.binaries - .filterIsInstance() - .forEach { + .matchingIsInstance() + .all { it.linkTask.configure { linkTask -> linkTask.kotlinOptions.configureOptions() } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/DomainObjectSets.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/DomainObjectSets.kt new file mode 100644 index 00000000000..eddb73d7705 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/DomainObjectSets.kt @@ -0,0 +1,14 @@ +/* + * 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.utils + +import org.gradle.api.DomainObjectSet + +inline fun DomainObjectSet<*>.matchingIsInstance(): DomainObjectSet { + return matching { + it is R + } as DomainObjectSet +} \ No newline at end of file