From 347f52ae1027831aa6e280e2b33714e2bb1f2448 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 5 Feb 2020 15:12:51 +0300 Subject: [PATCH] [Gradle, JS] Fix tests for both mode --- .../gradle/targets/js/KotlinJsTarget.kt | 28 +++++++++++-------- .../gradle/targets/js/ir/KotlinJsIrTarget.kt | 13 ++++----- .../js/subtargets/KotlinJsSubTarget.kt | 3 -- 3 files changed, 21 insertions(+), 23 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 d3ae421b908..b29f6eee0f6 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 @@ -12,15 +12,15 @@ import org.gradle.api.attributes.AttributesSchema import org.gradle.api.tasks.TaskProvider import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension -import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType +import org.jetbrains.kotlin.gradle.plugin.KotlinTargetComponent +import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget import org.jetbrains.kotlin.gradle.plugin.mpp.PRIMARY_SINGLE_COMPONENT_NAME -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.* 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 @@ -101,6 +101,7 @@ constructor( override fun browser(body: KotlinJsBrowserDsl.() -> Unit) { body(browser) + irTarget?.browser(body) } private val nodejsLazyDelegate = lazy { @@ -122,23 +123,22 @@ constructor( override fun nodejs(body: KotlinJsNodeDsl.() -> Unit) { body(nodejs) + irTarget?.nodejs(body) } override fun produceKotlinLibrary() { - produce(KotlinJsProducingType.KOTLIN_LIBRARY) { - produceKotlinLibrary() - } + produce(KotlinJsProducingType.KOTLIN_LIBRARY) } override fun produceExecutable() { produce(KotlinJsProducingType.EXECUTABLE) { - produceExecutable() + (this as KotlinJsSubTarget).produceExecutable() } } private fun produce( producingType: KotlinJsProducingType, - producer: KotlinJsSubTarget.() -> Unit + producer: KotlinJsSubTargetDsl.() -> Unit = {} ) { check(this.producingType == null || this.producingType == producingType) { "Only one producing type supported. Try to set $producingType but previously ${this.producingType} found" @@ -147,11 +147,15 @@ constructor( this.producingType = producingType whenBrowserConfigured { - (this as KotlinJsSubTarget).producer() + if (this is KotlinBrowserJs) { + producer() + } } whenNodejsConfigured { - (this as KotlinJsSubTarget).producer() + if (this is KotlinNodeJs) { + producer() + } } } 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 e86244972c2..9c09450543a 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 @@ -15,10 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource import org.jetbrains.kotlin.gradle.targets.js.KotlinJsProducingType import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl -import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl +import org.jetbrains.kotlin.gradle.targets.js.dsl.* import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import javax.inject.Inject @@ -91,13 +88,13 @@ constructor( override fun produceExecutable() { produce(KotlinJsProducingType.EXECUTABLE) { - produceExecutable() + (this as KotlinJsIrSubTarget).produceExecutable() } } private fun produce( producingType: KotlinJsProducingType, - producer: KotlinJsIrSubTarget.() -> Unit = {} + producer: KotlinJsSubTargetDsl.() -> Unit = {} ) { check(this.producingType == null || this.producingType == producingType) { "Only one producing type supported. Try to set $producingType but previously ${this.producingType} found" @@ -106,11 +103,11 @@ constructor( this.producingType = producingType whenBrowserConfigured { - (this as KotlinJsIrSubTarget).producer() + producer() } whenNodejsConfigured { - (this as KotlinJsIrSubTarget).producer() + producer() } } 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 a74a8ede8e4..beca44df518 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 @@ -38,9 +38,6 @@ abstract class KotlinJsSubTarget( final override lateinit var testRuns: NamedDomainObjectContainer private set - internal open fun produceKotlinLibrary() { - } - internal open fun produceExecutable() { configureBuildVariants() configureMain()