[Gradle, JS] Distribution directory not null

#KT-38051 fixed
This commit is contained in:
Ilya Goncharov
2020-04-06 17:15:22 +03:00
parent cfa542f50b
commit 4b903088bf
4 changed files with 16 additions and 19 deletions
@@ -8,5 +8,5 @@ package org.jetbrains.kotlin.gradle.targets.js.dsl
import java.io.File
interface Distribution {
var directory: File?
var directory: File
}
@@ -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<KotlinWebpack.() -> Unit> = mutableListOf()
private val commonRunConfigurations: MutableList<KotlinWebpack.() -> 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<Copy>(
@@ -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)
@@ -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)
}
}
@@ -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<KotlinWebpack.() -> Unit> = mutableListOf()
private val commonRunConfigurations: MutableList<KotlinWebpack.() -> Unit> = mutableListOf()
private val dceConfigurations: MutableList<KotlinJsDce.() -> 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<Copy>(
@@ -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)