diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt index 5e504da3d67..1ae175bdfa2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt @@ -34,7 +34,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : val developmentExecutable = compilation.binaries.getIrBinary(KotlinJsBinaryType.DEVELOPMENT) val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) { - this.group = taskGroupName + group = taskGroupName inputFileProperty.set(developmentExecutable.linkTask.map { it.outputFileProperty.get() }) } target.runTask.dependsOn(runTaskHolder) 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 acdba5e5264..4f53d338685 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 @@ -81,13 +81,13 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val compileKotlinTask = compilation.compileKotlinTask - val commonRunTask = project.registerTask(disambiguateCamelCased(RUN_TASK_NAME)) {} + val commonRunTask = registerSubTargetTask(disambiguateCamelCased(RUN_TASK_NAME)) {} compilation.binaries .all { binary -> val type = binary.type - val runTask = project.registerTask( + val runTask = registerSubTargetTask( disambiguateCamelCased( binary.executeTaskBaseName, RUN_TASK_NAME @@ -151,7 +151,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : val processResourcesTask = target.project.tasks.named(compilation.processResourcesTaskName) - val distributeResourcesTask = project.registerTask( + val distributeResourcesTask = registerSubTargetTask( disambiguateCamelCased( DISTRIBUTE_RESOURCES_TASK_NAME ) @@ -167,7 +167,7 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : .all { binary -> val type = binary.type - val webpackTask = project.registerTask( + val webpackTask = registerSubTargetTask( disambiguateCamelCased( binary.executeTaskBaseName, WEBPACK_TASK_NAME @@ -208,12 +208,12 @@ open class KotlinBrowserJs @Inject constructor(target: KotlinJsTarget) : if (type == KotlinJsBinaryType.PRODUCTION) { assembleTask.dependsOn(webpackTask) - val webpackCommonTask = project.registerTask( + val webpackCommonTask = registerSubTargetTask( disambiguateCamelCased(WEBPACK_TASK_NAME) ) { it.dependsOn(webpackTask) } - project.registerTask(disambiguateCamelCased(DISTRIBUTION_TASK_NAME)) { + registerSubTargetTask(disambiguateCamelCased(DISTRIBUTION_TASK_NAME)) { it.dependsOn(webpackCommonTask) it.dependsOn(distributeResourcesTask) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt index 54afa817411..42de9e0e11a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinJsSubTarget.kt @@ -6,7 +6,9 @@ package org.jetbrains.kotlin.gradle.targets.js.subtargets import org.gradle.api.NamedDomainObjectContainer +import org.gradle.api.Task import org.gradle.api.plugins.ExtensionAware +import org.gradle.api.tasks.TaskProvider import org.gradle.language.base.plugins.LifecycleBasePlugin import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation @@ -38,6 +40,8 @@ abstract class KotlinJsSubTarget( final override lateinit var testRuns: NamedDomainObjectContainer private set + protected val taskGroupName = "Kotlin $disambiguationClassifier" + internal open fun produceExecutable() { configureMain() } @@ -137,6 +141,15 @@ abstract class KotlinJsSubTarget( protected abstract fun configureMain(compilation: KotlinJsCompilation) + internal inline fun registerSubTargetTask( + name: String, + noinline body: (T) -> (Unit) + ): TaskProvider = + project.registerTask(name) { + it.group = taskGroupName + body(it) + } + companion object { const val RUN_TASK_NAME = "run" } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt index ad9f6d4777b..4f1ad9ac7fc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/subtargets/KotlinNodeJs.kt @@ -40,6 +40,7 @@ open class KotlinNodeJs @Inject constructor(target: KotlinJsTarget) : compilation: KotlinJsCompilation ) { val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) { + group = taskGroupName inputFileProperty.set(compilation.compileKotlinTask.outputFile) } target.runTask.dependsOn(runTaskHolder)