[Gradle, JS] JS specific build variants
This commit is contained in:
+3
-3
@@ -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
|
||||||
}
|
}
|
||||||
+14
-14
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user