From 7a3b6e2d71f1d1d2bbfb8964d862f0c673de9a0b Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 27 Jan 2020 14:18:27 +0300 Subject: [PATCH] [Gradle, JS] Move producing dsl from subtarget to target --- .../gradle/targets/js/KotlinJsTarget.kt | 32 +++++++++++++++---- .../targets/js/dsl/KotlinJsTargetDsl.kt | 8 ++--- .../targets/js/subtargets/KotlinBrowserJs.kt | 15 --------- .../js/subtargets/KotlinJsSubTarget.kt | 14 ++------ .../targets/js/subtargets/KotlinNodeJs.kt | 15 --------- 5 files changed, 33 insertions(+), 51 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt index 8509959db6c..77c9ba4125d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/KotlinJsTarget.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs +import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs import org.jetbrains.kotlin.gradle.tasks.locateTask import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport @@ -82,10 +83,10 @@ constructor( private val browserLazyDelegate = lazy { project.objects.newInstance(KotlinBrowserJs::class.java, this).also { + it.configure() + browserConfiguredHandlers.forEach { handler -> - it.whenProducingConfigured { - handler(this) - } + handler(it) } browserConfiguredHandlers.clear() } @@ -103,10 +104,9 @@ constructor( private val nodejsLazyDelegate = lazy { project.objects.newInstance(KotlinNodeJs::class.java, this).also { + it.configure() nodejsConfiguredHandlers.forEach { handler -> - it.whenProducingConfigured { - handler(this) - } + handler(it) } nodejsConfiguredHandlers.clear() @@ -123,6 +123,26 @@ constructor( body(nodejs) } + override fun produceKotlinLibrary() { + whenBrowserConfigured { + (this as KotlinJsSubTarget).produceKotlinLibrary() + } + + whenNodejsConfigured { + (this as KotlinJsSubTarget).produceKotlinLibrary() + } + } + + override fun produceExecutable() { + whenBrowserConfigured { + (this as KotlinJsSubTarget).produceExecutable() + } + + whenNodejsConfigured { + (this as KotlinJsSubTarget).produceExecutable() + } + } + fun whenBrowserConfigured(body: KotlinJsBrowserDsl.() -> Unit) { if (browserLazyDelegate.isInitialized()) { browser(body) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt index 274dd358f46..0b5fed0cbe8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/KotlinJsTargetDsl.kt @@ -55,6 +55,10 @@ interface KotlinJsTargetDsl { } } + fun produceKotlinLibrary() + + fun produceExecutable() + val testRuns: NamedDomainObjectContainer } @@ -66,10 +70,6 @@ interface KotlinJsSubTargetDsl { } } - fun produceKotlinLibrary() - - fun produceExecutable() - val testRuns: NamedDomainObjectContainer } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt index 55677b01949..1638f820f5c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinBrowserJs.kt @@ -53,13 +53,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : target.irTarget?.browser?.produceExecutable() } - override fun configure() { - super.configure() - browserProducingConfiguredHandlers.forEach { handler -> - handler(this) - } - } - override fun configureDefaultTestFramework(testTask: KotlinJsTest) { testTask.useKarma { useChromeHeadless() @@ -304,14 +297,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : } } - fun whenProducingConfigured(body: KotlinBrowserJs.() -> Unit) { - if (producingConfigured) { - this.body() - } else { - browserProducingConfiguredHandlers += body - } - } - companion object { const val DCE_TASK_PREFIX = "processDce" const val DCE_TASK_SUFFIX = "kotlinJs" diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt index 3ed3d25bc99..0c2b7a8cb07 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt @@ -37,23 +37,15 @@ abstract class KotlinJsSubTarget( final override lateinit var testRuns: NamedDomainObjectContainer private set - protected val producingConfigured: Boolean = false - - protected val browserProducingConfiguredHandlers: MutableList Unit> = mutableListOf() - protected val nodejsProducingConfiguredHandlers: MutableList Unit> = mutableListOf() - - override fun produceKotlinLibrary() { - configure() + internal open fun produceKotlinLibrary() { } - override fun produceExecutable() { - configure() - + internal open fun produceExecutable() { configureBuildVariants() configureMain() } - protected open fun configure() { + internal open fun configure() { NpmResolverPlugin.apply(project) configureTests() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt index fc32c39b9b4..b067ada6bcf 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt @@ -30,13 +30,6 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) : target.irTarget?.nodejs?.produceExecutable() } - override fun configure() { - super.configure() - nodejsProducingConfiguredHandlers.forEach { handler -> - handler(this) - } - } - override fun runTask(body: NodeJsExec.() -> Unit) { (project.tasks.getByName(runTaskName) as NodeJsExec).body() } @@ -60,12 +53,4 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) : override fun configureBuildVariants() { } - - fun whenProducingConfigured(body: KotlinNodeJs.() -> Unit) { - if (producingConfigured) { - this.body() - } else { - nodejsProducingConfiguredHandlers += body - } - } } \ No newline at end of file