From 4b903088bf252bd1bcc6721a722e6b900ac0bc4c Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Mon, 6 Apr 2020 17:15:22 +0300 Subject: [PATCH] [Gradle, JS] Distribution directory not null #KT-38051 fixed --- .../kotlin/gradle/targets/js/dsl/Distribution.kt | 2 +- .../gradle/targets/js/ir/KotlinBrowserJsIr.kt | 10 ++-------- .../targets/js/subtargets/BrowserDistribution.kt | 13 +++++++++++-- .../gradle/targets/js/subtargets/KotlinBrowserJs.kt | 10 ++-------- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/Distribution.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/Distribution.kt index aba2e00d456..0374f2e8790 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/Distribution.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/dsl/Distribution.kt @@ -8,5 +8,5 @@ package org.jetbrains.kotlin.gradle.targets.js.dsl import java.io.File interface Distribution { - var directory: File? + var directory: File } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt index 90052568c27..c3edded0c0f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinBrowserJsIr.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.targets.js.ir import org.gradle.api.Task -import org.gradle.api.plugins.BasePluginConvention import org.gradle.api.tasks.Copy import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce @@ -27,7 +26,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : private val commonWebpackConfigurations: MutableList Unit> = mutableListOf() private val commonRunConfigurations: MutableList Unit> = mutableListOf() - private val distribution: Distribution = BrowserDistribution() + private val distribution: Distribution = BrowserDistribution(project) override val testTaskDescription: String get() = "Run all ${target.name} tests inside browser using karma and webpack" @@ -117,11 +116,6 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : val project = compilation.target.project val nodeJs = NodeJsRootPlugin.apply(project.rootProject) - val basePluginConvention = project.convention.plugins["base"] as BasePluginConvention? - - val baseDist = project.buildDir.resolve(basePluginConvention!!.distsDirName) - distribution.directory = distribution.directory ?: baseDist - val processResourcesTask = target.project.tasks.named(compilation.processResourcesTaskName) val distributeResourcesTask = project.registerTask( @@ -130,7 +124,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) : ) ) { it.from(processResourcesTask) - it.into(distribution.directory ?: baseDist) + it.into(distribution.directory) } val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/BrowserDistribution.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/BrowserDistribution.kt index 70a196b1b82..5f906f1e785 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/BrowserDistribution.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/BrowserDistribution.kt @@ -5,9 +5,18 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets +import org.gradle.api.Project +import org.gradle.api.plugins.BasePluginConvention import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution +import org.jetbrains.kotlin.gradle.utils.property import java.io.File -class BrowserDistribution : Distribution { - override var directory: File? = null +class BrowserDistribution(private val project: Project) : Distribution { + + private val basePluginConvention: BasePluginConvention + get() = project.convention.plugins["base"] as BasePluginConvention + + override var directory: File by property { + project.buildDir.resolve(basePluginConvention.distsDirName) + } } \ No newline at end of file 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 122d9c86db3..acdba5e5264 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets import org.gradle.api.Task -import org.gradle.api.plugins.BasePluginConvention import org.gradle.api.tasks.Copy import org.gradle.api.tasks.TaskProvider import org.gradle.language.base.plugins.LifecycleBasePlugin @@ -36,7 +35,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : private val commonWebpackConfigurations: MutableList Unit> = mutableListOf() private val commonRunConfigurations: MutableList Unit> = mutableListOf() private val dceConfigurations: MutableList Unit> = mutableListOf() - private val distribution: Distribution = BrowserDistribution() + private val distribution: Distribution = BrowserDistribution(project) override val testTaskDescription: String get() = "Run all ${target.name} tests inside browser using karma and webpack" @@ -150,11 +149,6 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val compileKotlinTask = compilation.compileKotlinTask - val basePluginConvention = project.convention.plugins["base"] as BasePluginConvention? - - val baseDist = project.buildDir.resolve(basePluginConvention!!.distsDirName) - distribution.directory = distribution.directory ?: baseDist - val processResourcesTask = target.project.tasks.named(compilation.processResourcesTaskName) val distributeResourcesTask = project.registerTask( @@ -163,7 +157,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : ) ) { it.from(processResourcesTask) - it.into(distribution.directory ?: baseDist) + it.into(distribution.directory) } val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)