[Gradle, JS] KotlinJsType to KotlinJsMode
This commit is contained in:
+4
-5
@@ -16,7 +16,6 @@ import org.gradle.api.artifacts.maven.MavenResolver
|
|||||||
import org.gradle.api.attributes.Usage
|
import org.gradle.api.attributes.Usage
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.file.SourceDirectorySet
|
import org.gradle.api.file.SourceDirectorySet
|
||||||
import org.gradle.api.logging.Logger
|
|
||||||
import org.gradle.api.logging.Logging
|
import org.gradle.api.logging.Logging
|
||||||
import org.gradle.api.plugins.InvalidPluginException
|
import org.gradle.api.plugins.InvalidPluginException
|
||||||
import org.gradle.api.plugins.JavaPlugin
|
import org.gradle.api.plugins.JavaPlugin
|
||||||
@@ -41,7 +40,7 @@ import org.jetbrains.kotlin.gradle.logging.kotlinWarn
|
|||||||
import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder
|
import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
|
import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary
|
import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrLink
|
||||||
@@ -337,7 +336,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
|||||||
private fun registerJsLink(
|
private fun registerJsLink(
|
||||||
project: Project,
|
project: Project,
|
||||||
taskName: String,
|
taskName: String,
|
||||||
type: KotlinJsBinaryType,
|
mode: KotlinJsBinaryMode,
|
||||||
configureAction: (Kotlin2JsCompile) -> Unit
|
configureAction: (Kotlin2JsCompile) -> Unit
|
||||||
): TaskProvider<out KotlinJsIrLink> {
|
): TaskProvider<out KotlinJsIrLink> {
|
||||||
return tasksProvider.registerKotlinJsIrTask(
|
return tasksProvider.registerKotlinJsIrTask(
|
||||||
@@ -345,7 +344,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
|||||||
taskName,
|
taskName,
|
||||||
kotlinCompilation
|
kotlinCompilation
|
||||||
) { task ->
|
) { task ->
|
||||||
task.type = type
|
task.mode = mode
|
||||||
configureAction(task)
|
configureAction(task)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -363,7 +362,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
|||||||
registerKotlinCompileTask(
|
registerKotlinCompileTask(
|
||||||
binary.linkTaskName
|
binary.linkTaskName
|
||||||
) { project, name, action ->
|
) { project, name, action ->
|
||||||
registerJsLink(project, name, binary.type) { compileTask ->
|
registerJsLink(project, name, binary.mode) { compileTask ->
|
||||||
action(compileTask)
|
action(compileTask)
|
||||||
compileTask.dependsOn(kotlinTask)
|
compileTask.dependsOn(kotlinTask)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.targets.js.dsl
|
package org.jetbrains.kotlin.gradle.targets.js.dsl
|
||||||
|
|
||||||
enum class KotlinJsBinaryType {
|
enum class KotlinJsBinaryMode {
|
||||||
PRODUCTION,
|
PRODUCTION,
|
||||||
DEVELOPMENT
|
DEVELOPMENT
|
||||||
}
|
}
|
||||||
+7
-7
@@ -9,20 +9,20 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer.Companion.generateBinaryName
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer.Companion.generateBinaryName
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
|
|
||||||
interface JsBinary {
|
interface JsBinary {
|
||||||
val compilation: KotlinJsCompilation
|
val compilation: KotlinJsCompilation
|
||||||
val name: String
|
val name: String
|
||||||
val type: KotlinJsBinaryType
|
val mode: KotlinJsBinaryMode
|
||||||
}
|
}
|
||||||
|
|
||||||
sealed class JsIrBinary(
|
sealed class JsIrBinary(
|
||||||
override val compilation: KotlinJsCompilation,
|
override val compilation: KotlinJsCompilation,
|
||||||
override val name: String,
|
override val name: String,
|
||||||
override val type: KotlinJsBinaryType
|
override val mode: KotlinJsBinaryMode
|
||||||
) : JsBinary {
|
) : JsBinary {
|
||||||
val linkTaskName: String = linkTaskName()
|
val linkTaskName: String = linkTaskName()
|
||||||
|
|
||||||
@@ -49,16 +49,16 @@ sealed class JsIrBinary(
|
|||||||
class Executable(
|
class Executable(
|
||||||
compilation: KotlinJsCompilation,
|
compilation: KotlinJsCompilation,
|
||||||
name: String,
|
name: String,
|
||||||
type: KotlinJsBinaryType
|
mode: KotlinJsBinaryMode
|
||||||
) : JsIrBinary(
|
) : JsIrBinary(
|
||||||
compilation,
|
compilation,
|
||||||
name,
|
name,
|
||||||
type
|
mode
|
||||||
) {
|
) {
|
||||||
val executeTaskBaseName: String =
|
val executeTaskBaseName: String =
|
||||||
generateBinaryName(
|
generateBinaryName(
|
||||||
compilation,
|
compilation,
|
||||||
type,
|
mode,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -67,6 +67,6 @@ class Executable(
|
|||||||
internal val JsBinary.executeTaskBaseName: String
|
internal val JsBinary.executeTaskBaseName: String
|
||||||
get() = generateBinaryName(
|
get() = generateBinaryName(
|
||||||
compilation,
|
compilation,
|
||||||
type,
|
mode,
|
||||||
null
|
null
|
||||||
)
|
)
|
||||||
+9
-9
@@ -69,7 +69,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
.all { binary ->
|
.all { binary ->
|
||||||
binary as Executable
|
binary as Executable
|
||||||
|
|
||||||
val type = binary.type
|
val type = binary.mode
|
||||||
|
|
||||||
val runTask = registerSubTargetTask<KotlinWebpack>(
|
val runTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
@@ -95,7 +95,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
it.outputs.upToDateWhen { false }
|
it.outputs.upToDateWhen { false }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == KotlinJsBinaryType.DEVELOPMENT) {
|
if (type == KotlinJsBinaryMode.DEVELOPMENT) {
|
||||||
target.runTask.dependsOn(runTask)
|
target.runTask.dependsOn(runTask)
|
||||||
commonRunTask.configure {
|
commonRunTask.configure {
|
||||||
it.dependsOn(runTask)
|
it.dependsOn(runTask)
|
||||||
@@ -129,7 +129,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
.all { binary ->
|
.all { binary ->
|
||||||
binary as Executable
|
binary as Executable
|
||||||
|
|
||||||
val type = binary.type
|
val type = binary.mode
|
||||||
val webpackTask = registerSubTargetTask<KotlinWebpack>(
|
val webpackTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
binary.executeTaskBaseName,
|
binary.executeTaskBaseName,
|
||||||
@@ -151,7 +151,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
it._destinationDirectory = distribution.directory
|
it._destinationDirectory = distribution.directory
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == KotlinJsBinaryType.PRODUCTION) {
|
if (type == KotlinJsBinaryMode.PRODUCTION) {
|
||||||
assembleTask.dependsOn(webpackTask)
|
assembleTask.dependsOn(webpackTask)
|
||||||
val webpackCommonTask = registerSubTargetTask<Task>(
|
val webpackCommonTask = registerSubTargetTask<Task>(
|
||||||
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
||||||
@@ -173,7 +173,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
binary: Executable,
|
binary: Executable,
|
||||||
nodeJs: NodeJsRootExtension
|
nodeJs: NodeJsRootExtension
|
||||||
) {
|
) {
|
||||||
val type = binary.type
|
val type = binary.mode
|
||||||
|
|
||||||
dependsOn(
|
dependsOn(
|
||||||
nodeJs.npmInstallTask,
|
nodeJs.npmInstallTask,
|
||||||
@@ -190,7 +190,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinWebpack.configureOptimization(kind: KotlinJsBinaryType) {
|
private fun KotlinWebpack.configureOptimization(kind: KotlinJsBinaryMode) {
|
||||||
mode = getByKind(
|
mode = getByKind(
|
||||||
kind = kind,
|
kind = kind,
|
||||||
releaseValue = Mode.PRODUCTION,
|
releaseValue = Mode.PRODUCTION,
|
||||||
@@ -205,12 +205,12 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun <T> getByKind(
|
private fun <T> getByKind(
|
||||||
kind: KotlinJsBinaryType,
|
kind: KotlinJsBinaryMode,
|
||||||
releaseValue: T,
|
releaseValue: T,
|
||||||
debugValue: T
|
debugValue: T
|
||||||
): T = when (kind) {
|
): T = when (kind) {
|
||||||
KotlinJsBinaryType.PRODUCTION -> releaseValue
|
KotlinJsBinaryMode.PRODUCTION -> releaseValue
|
||||||
KotlinJsBinaryType.DEVELOPMENT -> debugValue
|
KotlinJsBinaryMode.DEVELOPMENT -> debugValue
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
+16
-16
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -12,9 +12,9 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType.DEVELOPMENT
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType.PRODUCTION
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -80,24 +80,24 @@ constructor(
|
|||||||
object : JsBinary {
|
object : JsBinary {
|
||||||
override val compilation: KotlinJsCompilation = compilation
|
override val compilation: KotlinJsCompilation = compilation
|
||||||
override val name: String = name
|
override val name: String = name
|
||||||
override val type: KotlinJsBinaryType = type
|
override val mode: KotlinJsBinaryMode = type
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
internal fun getIrBinaries(
|
internal fun getIrBinaries(
|
||||||
type: KotlinJsBinaryType
|
mode: KotlinJsBinaryMode
|
||||||
): DomainObjectSet<JsIrBinary> =
|
): DomainObjectSet<JsIrBinary> =
|
||||||
withType(JsIrBinary::class.java)
|
withType(JsIrBinary::class.java)
|
||||||
.matching { it.type == type }
|
.matching { it.mode == mode }
|
||||||
|
|
||||||
private fun <T : JsBinary> createBinaries(
|
private fun <T : JsBinary> createBinaries(
|
||||||
compilation: KotlinJsCompilation,
|
compilation: KotlinJsCompilation,
|
||||||
types: Collection<KotlinJsBinaryType> = listOf(PRODUCTION, DEVELOPMENT),
|
modes: Collection<KotlinJsBinaryMode> = listOf(PRODUCTION, DEVELOPMENT),
|
||||||
jsBinaryType: JsBinaryType,
|
jsBinaryType: JsBinaryType,
|
||||||
create: (compilation: KotlinJsCompilation, name: String, type: KotlinJsBinaryType) -> T
|
create: (compilation: KotlinJsCompilation, name: String, mode: KotlinJsBinaryMode) -> T
|
||||||
) {
|
) {
|
||||||
types.forEach {
|
modes.forEach {
|
||||||
createBinary(
|
createBinary(
|
||||||
compilation,
|
compilation,
|
||||||
it,
|
it,
|
||||||
@@ -109,13 +109,13 @@ constructor(
|
|||||||
|
|
||||||
private fun <T : JsBinary> createBinary(
|
private fun <T : JsBinary> createBinary(
|
||||||
compilation: KotlinJsCompilation,
|
compilation: KotlinJsCompilation,
|
||||||
type: KotlinJsBinaryType,
|
mode: KotlinJsBinaryMode,
|
||||||
jsBinaryType: JsBinaryType,
|
jsBinaryType: JsBinaryType,
|
||||||
create: (compilation: KotlinJsCompilation, name: String, type: KotlinJsBinaryType) -> T
|
create: (compilation: KotlinJsCompilation, name: String, mode: KotlinJsBinaryMode) -> T
|
||||||
) {
|
) {
|
||||||
val name = generateBinaryName(
|
val name = generateBinaryName(
|
||||||
compilation,
|
compilation,
|
||||||
type,
|
mode,
|
||||||
jsBinaryType
|
jsBinaryType
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -125,7 +125,7 @@ constructor(
|
|||||||
|
|
||||||
binaryNames.add(name)
|
binaryNames.add(name)
|
||||||
|
|
||||||
val binary = create(compilation, name, type)
|
val binary = create(compilation, name, mode)
|
||||||
add(binary)
|
add(binary)
|
||||||
// Allow accessing binaries as properties of the container in Groovy DSL.
|
// Allow accessing binaries as properties of the container in Groovy DSL.
|
||||||
if (this is ExtensionAware) {
|
if (this is ExtensionAware) {
|
||||||
@@ -136,12 +136,12 @@ constructor(
|
|||||||
companion object {
|
companion object {
|
||||||
internal fun generateBinaryName(
|
internal fun generateBinaryName(
|
||||||
compilation: KotlinJsCompilation,
|
compilation: KotlinJsCompilation,
|
||||||
type: KotlinJsBinaryType,
|
mode: KotlinJsBinaryMode,
|
||||||
jsBinaryType: JsBinaryType?
|
jsBinaryType: JsBinaryType?
|
||||||
) =
|
) =
|
||||||
lowerCamelCaseName(
|
lowerCamelCaseName(
|
||||||
compilation.name.let { if (it == KotlinCompilation.MAIN_COMPILATION_NAME) null else it },
|
compilation.name.let { if (it == KotlinCompilation.MAIN_COMPILATION_NAME) null else it },
|
||||||
type.name.toLowerCase(),
|
mode.name.toLowerCase(),
|
||||||
jsBinaryType?.name?.toLowerCase()
|
jsBinaryType?.name?.toLowerCase()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-6
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -11,9 +11,9 @@ import org.gradle.api.tasks.*
|
|||||||
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType.DEVELOPMENT
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType.PRODUCTION
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.PRODUCTION
|
||||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||||
import org.jetbrains.kotlin.gradle.utils.newFileProperty
|
import org.jetbrains.kotlin.gradle.utils.newFileProperty
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -21,7 +21,7 @@ import java.io.File
|
|||||||
@CacheableTask
|
@CacheableTask
|
||||||
open class KotlinJsIrLink : Kotlin2JsCompile() {
|
open class KotlinJsIrLink : Kotlin2JsCompile() {
|
||||||
@Input
|
@Input
|
||||||
lateinit var type: KotlinJsBinaryType
|
lateinit var mode: KotlinJsBinaryMode
|
||||||
|
|
||||||
// Not check sources, only klib module
|
// Not check sources, only klib module
|
||||||
@Internal
|
@Internal
|
||||||
@@ -56,7 +56,7 @@ open class KotlinJsIrLink : Kotlin2JsCompile() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
||||||
when (type) {
|
when (mode) {
|
||||||
PRODUCTION -> {
|
PRODUCTION -> {
|
||||||
kotlinOptions.configureOptions(ENABLE_DCE, GENERATE_D_TS)
|
kotlinOptions.configureOptions(ENABLE_DCE, GENERATE_D_TS)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
|
||||||
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolverPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolverPlugin
|
||||||
@@ -102,7 +102,7 @@ abstract class KotlinJsIrSubTarget(
|
|||||||
testJs.description = testTaskDescription
|
testJs.description = testTaskDescription
|
||||||
|
|
||||||
val testExecutableTask = compilation.binaries.getIrBinaries(
|
val testExecutableTask = compilation.binaries.getIrBinaries(
|
||||||
KotlinJsBinaryType.DEVELOPMENT
|
KotlinJsBinaryMode.DEVELOPMENT
|
||||||
).single().linkTask
|
).single().linkTask
|
||||||
|
|
||||||
testJs.inputFileProperty.set(
|
testJs.inputFileProperty.set(
|
||||||
|
|||||||
+3
-3
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryType
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||||
@@ -31,7 +31,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
override fun configureRun(
|
override fun configureRun(
|
||||||
compilation: KotlinJsIrCompilation
|
compilation: KotlinJsIrCompilation
|
||||||
) {
|
) {
|
||||||
compilation.binaries.getIrBinaries(KotlinJsBinaryType.DEVELOPMENT)
|
compilation.binaries.getIrBinaries(KotlinJsBinaryMode.DEVELOPMENT)
|
||||||
.all { developmentExecutable ->
|
.all { developmentExecutable ->
|
||||||
val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) {
|
val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) {
|
||||||
group = taskGroupName
|
group = taskGroupName
|
||||||
@@ -45,7 +45,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
override fun configureBuild(
|
override fun configureBuild(
|
||||||
compilation: KotlinJsIrCompilation
|
compilation: KotlinJsIrCompilation
|
||||||
) {
|
) {
|
||||||
compilation.binaries.getIrBinaries(KotlinJsBinaryType.PRODUCTION)
|
compilation.binaries.getIrBinaries(KotlinJsBinaryMode.PRODUCTION)
|
||||||
.all { productionExecutable ->
|
.all { productionExecutable ->
|
||||||
val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
val assembleTask = project.tasks.getByName(LifecycleBasePlugin.ASSEMBLE_TASK_NAME)
|
||||||
assembleTask.dependsOn(productionExecutable.linkTask)
|
assembleTask.dependsOn(productionExecutable.linkTask)
|
||||||
|
|||||||
+15
-15
@@ -100,7 +100,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
|
|
||||||
compilation.binaries
|
compilation.binaries
|
||||||
.all { binary ->
|
.all { binary ->
|
||||||
val type = binary.type
|
val type = binary.mode
|
||||||
|
|
||||||
val runTask = registerSubTargetTask<KotlinWebpack>(
|
val runTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
@@ -112,7 +112,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
compilation = compilation,
|
compilation = compilation,
|
||||||
dceTaskProvider = dceTaskProvider,
|
dceTaskProvider = dceTaskProvider,
|
||||||
devDceTaskProvider = devDceTaskProvider,
|
devDceTaskProvider = devDceTaskProvider,
|
||||||
type = type,
|
mode = type,
|
||||||
nodeJs = nodeJs
|
nodeJs = nodeJs
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
it.outputs.upToDateWhen { false }
|
it.outputs.upToDateWhen { false }
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == KotlinJsBinaryType.DEVELOPMENT) {
|
if (type == KotlinJsBinaryMode.DEVELOPMENT) {
|
||||||
target.runTask.dependsOn(runTask)
|
target.runTask.dependsOn(runTask)
|
||||||
commonRunTask.configure {
|
commonRunTask.configure {
|
||||||
it.dependsOn(runTask)
|
it.dependsOn(runTask)
|
||||||
@@ -161,7 +161,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
|
|
||||||
compilation.binaries
|
compilation.binaries
|
||||||
.all { binary ->
|
.all { binary ->
|
||||||
val type = binary.type
|
val type = binary.mode
|
||||||
|
|
||||||
val webpackTask = registerSubTargetTask<KotlinWebpack>(
|
val webpackTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
@@ -174,7 +174,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
compilation = compilation,
|
compilation = compilation,
|
||||||
dceTaskProvider = dceTaskProvider,
|
dceTaskProvider = dceTaskProvider,
|
||||||
devDceTaskProvider = devDceTaskProvider,
|
devDceTaskProvider = devDceTaskProvider,
|
||||||
type = type,
|
mode = type,
|
||||||
nodeJs = nodeJs
|
nodeJs = nodeJs
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -189,7 +189,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
it._destinationDirectory = distribution.directory
|
it._destinationDirectory = distribution.directory
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == KotlinJsBinaryType.PRODUCTION) {
|
if (type == KotlinJsBinaryMode.PRODUCTION) {
|
||||||
assembleTask.dependsOn(webpackTask)
|
assembleTask.dependsOn(webpackTask)
|
||||||
val webpackCommonTask = registerSubTargetTask<Task>(
|
val webpackCommonTask = registerSubTargetTask<Task>(
|
||||||
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
||||||
@@ -210,7 +210,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
compilation: KotlinJsCompilation,
|
compilation: KotlinJsCompilation,
|
||||||
dceTaskProvider: TaskProvider<KotlinJsDceTask>,
|
dceTaskProvider: TaskProvider<KotlinJsDceTask>,
|
||||||
devDceTaskProvider: TaskProvider<KotlinJsDceTask>,
|
devDceTaskProvider: TaskProvider<KotlinJsDceTask>,
|
||||||
type: KotlinJsBinaryType,
|
mode: KotlinJsBinaryMode,
|
||||||
nodeJs: NodeJsRootExtension
|
nodeJs: NodeJsRootExtension
|
||||||
) {
|
) {
|
||||||
dependsOn(
|
dependsOn(
|
||||||
@@ -218,7 +218,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
target.project.tasks.named(compilation.processResourcesTaskName)
|
target.project.tasks.named(compilation.processResourcesTaskName)
|
||||||
)
|
)
|
||||||
|
|
||||||
configureOptimization(type)
|
configureOptimization(mode)
|
||||||
|
|
||||||
devServer = KotlinWebpackConfig.DevServer(
|
devServer = KotlinWebpackConfig.DevServer(
|
||||||
open = true,
|
open = true,
|
||||||
@@ -227,9 +227,9 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
|
|
||||||
outputs.upToDateWhen { false }
|
outputs.upToDateWhen { false }
|
||||||
|
|
||||||
val actualDceTaskProvider = when (type) {
|
val actualDceTaskProvider = when (mode) {
|
||||||
KotlinJsBinaryType.PRODUCTION -> dceTaskProvider
|
KotlinJsBinaryMode.PRODUCTION -> dceTaskProvider
|
||||||
KotlinJsBinaryType.DEVELOPMENT -> devDceTaskProvider
|
KotlinJsBinaryMode.DEVELOPMENT -> devDceTaskProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
entryProperty.set(
|
entryProperty.set(
|
||||||
@@ -283,7 +283,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinWebpack.configureOptimization(kind: KotlinJsBinaryType) {
|
private fun KotlinWebpack.configureOptimization(kind: KotlinJsBinaryMode) {
|
||||||
mode = getByKind(
|
mode = getByKind(
|
||||||
kind = kind,
|
kind = kind,
|
||||||
releaseValue = Mode.PRODUCTION,
|
releaseValue = Mode.PRODUCTION,
|
||||||
@@ -298,12 +298,12 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun <T> getByKind(
|
private fun <T> getByKind(
|
||||||
kind: KotlinJsBinaryType,
|
kind: KotlinJsBinaryMode,
|
||||||
releaseValue: T,
|
releaseValue: T,
|
||||||
debugValue: T
|
debugValue: T
|
||||||
): T = when (kind) {
|
): T = when (kind) {
|
||||||
KotlinJsBinaryType.PRODUCTION -> releaseValue
|
KotlinJsBinaryMode.PRODUCTION -> releaseValue
|
||||||
KotlinJsBinaryType.DEVELOPMENT -> debugValue
|
KotlinJsBinaryMode.DEVELOPMENT -> debugValue
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
Reference in New Issue
Block a user