[Gradle, JS] JS specific build variants

This commit is contained in:
Ilya Goncharov
2019-10-21 19:24:46 +03:00
parent e3ec37b14f
commit e7a45fb536
2 changed files with 17 additions and 17 deletions
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.dsl
import org.gradle.api.Named import org.gradle.api.Named
class BuildVariant(private val name: String) : Named { class BuildVariant(private val name: String) : Named {
var kind: BuildVariantKind = BuildVariantKind.RELEASE var kind: BuildVariantKind = BuildVariantKind.PRODUCTION
override fun getName(): String { override fun getName(): String {
return name return name
@@ -16,6 +16,6 @@ class BuildVariant(private val name: String) : Named {
} }
enum class BuildVariantKind { enum class BuildVariantKind {
RELEASE, PRODUCTION,
DEBUG DEVELOPMENT
} }
@@ -107,14 +107,14 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
it.outputs.upToDateWhen { false } it.outputs.upToDateWhen { false }
when (kind) { when (kind) {
BuildVariantKind.RELEASE -> { BuildVariantKind.PRODUCTION -> {
dceOutputFileAppliers.add { file -> dceOutputFileAppliers.add { file ->
it.entry = file it.entry = file
} }
it.resolveFromModulesFirst = true it.resolveFromModulesFirst = true
it.dependsOn(dceTaskProvider) it.dependsOn(dceTaskProvider)
} }
BuildVariantKind.DEBUG -> { BuildVariantKind.DEVELOPMENT -> {
it.dependsOn(compileKotlinTask) it.dependsOn(compileKotlinTask)
} }
} }
@@ -130,7 +130,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
} }
} }
if (kind == BuildVariantKind.DEBUG) { if (kind == BuildVariantKind.DEVELOPMENT) {
target.runTask.dependsOn(runTask) target.runTask.dependsOn(runTask)
} }
} }
@@ -166,14 +166,14 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
it.description = "build webpack ${kind.name.toLowerCase()} bundle" it.description = "build webpack ${kind.name.toLowerCase()} bundle"
when (kind) { when (kind) {
BuildVariantKind.RELEASE -> { BuildVariantKind.PRODUCTION -> {
dceOutputFileAppliers.add { file -> dceOutputFileAppliers.add { file ->
it.entry = file it.entry = file
} }
it.resolveFromModulesFirst = true it.resolveFromModulesFirst = true
it.dependsOn(dceTaskProvider) it.dependsOn(dceTaskProvider)
} }
BuildVariantKind.DEBUG -> { BuildVariantKind.DEVELOPMENT -> {
it.dependsOn(compileKotlinTask) it.dependsOn(compileKotlinTask)
} }
} }
@@ -189,7 +189,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
} }
} }
if (kind == BuildVariantKind.RELEASE) { if (kind == BuildVariantKind.PRODUCTION) {
project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(webpackTask) project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).dependsOn(webpackTask)
} }
} }
@@ -243,17 +243,17 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
releaseValue: T, releaseValue: T,
debugValue: T debugValue: T
): T = when (kind) { ): T = when (kind) {
BuildVariantKind.RELEASE -> releaseValue BuildVariantKind.PRODUCTION -> releaseValue
BuildVariantKind.DEBUG -> debugValue BuildVariantKind.DEVELOPMENT -> debugValue
} }
override fun configureBuildVariants() { override fun configureBuildVariants() {
buildVariants = project.container(BuildVariant::class.java) buildVariants = project.container(BuildVariant::class.java)
buildVariants.create(RELEASE) { buildVariants.create(PRODUCTION) {
it.kind = BuildVariantKind.RELEASE it.kind = BuildVariantKind.PRODUCTION
} }
buildVariants.create(DEBUG) { buildVariants.create(DEVELOPMENT) {
it.kind = BuildVariantKind.DEBUG it.kind = BuildVariantKind.DEVELOPMENT
} }
} }
@@ -263,7 +263,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
const val DCE_DIR = "kotlin-dce" const val DCE_DIR = "kotlin-dce"
const val RELEASE = "release" const val PRODUCTION = "production"
const val DEBUG = "debug" const val DEVELOPMENT = "development"
} }
} }