[Gradle, JS] Dukat with both create externals only once
This commit is contained in:
+8
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.dukat
|
package org.jetbrains.kotlin.gradle.targets.js.dukat
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
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.NpmDependency
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
|
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
|
||||||
@@ -37,6 +38,13 @@ internal class DukatCompilationResolverPlugin(
|
|||||||
|
|
||||||
compilation.compileKotlinTaskProvider.dependsOn(integratedTask)
|
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<SeparateDukatTask>(
|
project.registerTask<SeparateDukatTask>(
|
||||||
separateTaskName,
|
separateTaskName,
|
||||||
listOf(compilation)
|
listOf(compilation)
|
||||||
|
|||||||
+4
-1
@@ -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.compilationDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
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.ir.KotlinJsIrTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.*
|
import org.jetbrains.kotlin.gradle.targets.js.npm.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
|
||||||
@@ -72,7 +73,9 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
|
|
||||||
val plugins: List<CompilationResolverPlugin> = projectResolver.resolver.plugins
|
val plugins: List<CompilationResolverPlugin> = projectResolver.resolver.plugins
|
||||||
.flatMap {
|
.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)
|
it.createCompilationResolverPlugins(this)
|
||||||
} else {
|
} else {
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|||||||
Reference in New Issue
Block a user