From b694e3b009f67f4a056a3423bedcd4ba720b2902 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Fri, 4 Sep 2020 14:34:22 +0300 Subject: [PATCH] [Gradle, JS] Dukat with both create externals only once --- .../targets/js/dukat/DukatCompilationResolverPlugin.kt | 8 ++++++++ .../js/npm/resolver/KotlinCompilationNpmResolver.kt | 5 ++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt index 195c23993f9..2ca47e0e7f7 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dukat/DukatCompilationResolverPlugin.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.gradle.targets.js.dukat import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution @@ -37,6 +38,13 @@ internal class DukatCompilationResolverPlugin( compilation.compileKotlinTaskProvider.dependsOn(integratedTask) + val target = compilation.target + if (target is KotlinJsTarget && target.irTarget != null) { + target.irTarget?.compilations?.named(compilation.name) { + it.compileKotlinTaskProvider.dependsOn(integratedTask) + } + } + project.registerTask( separateTaskName, listOf(compilation) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt index b5813f68767..60f73e55550 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/resolver/KotlinCompilationNpmResolver.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf +import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.npm.* import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON @@ -72,7 +73,9 @@ internal class KotlinCompilationNpmResolver( val plugins: List = projectResolver.resolver.plugins .flatMap { - if (compilation.isMain()) { + val target = compilation.target + // If mixedMode (BOTH) register only for legacy target + if (compilation.isMain() && ((target is KotlinJsTarget) || (target is KotlinJsIrTarget && !target.mixedMode))) { it.createCompilationResolverPlugins(this) } else { emptyList()