[Gradle, JS] Group sub target tasks with dis classifier group
#KT-38056 fixed
This commit is contained in:
+6
-7
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Mode
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool
|
import org.jetbrains.kotlin.gradle.targets.js.webpack.WebpackDevtool
|
||||||
import org.jetbrains.kotlin.gradle.tasks.registerTask
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||||
@@ -61,7 +60,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
val project = compilation.target.project
|
val project = compilation.target.project
|
||||||
val nodeJs = NodeJsRootPlugin.apply(project.rootProject)
|
val nodeJs = NodeJsRootPlugin.apply(project.rootProject)
|
||||||
|
|
||||||
val commonRunTask = project.registerTask<Task>(disambiguateCamelCased(RUN_TASK_NAME)) {}
|
val commonRunTask = registerSubTargetTask<Task>(disambiguateCamelCased(RUN_TASK_NAME)) {}
|
||||||
|
|
||||||
compilation.binaries
|
compilation.binaries
|
||||||
.matching { it is Executable }
|
.matching { it is Executable }
|
||||||
@@ -70,7 +69,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
|
|
||||||
val type = binary.type
|
val type = binary.type
|
||||||
|
|
||||||
val runTask = project.registerTask<KotlinWebpack>(
|
val runTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
binary.executeTaskBaseName,
|
binary.executeTaskBaseName,
|
||||||
RUN_TASK_NAME
|
RUN_TASK_NAME
|
||||||
@@ -118,7 +117,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
|
|
||||||
val processResourcesTask = target.project.tasks.named(compilation.processResourcesTaskName)
|
val processResourcesTask = target.project.tasks.named(compilation.processResourcesTaskName)
|
||||||
|
|
||||||
val distributeResourcesTask = project.registerTask<Copy>(
|
val distributeResourcesTask = registerSubTargetTask<Copy>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
DISTRIBUTE_RESOURCES_TASK_NAME
|
DISTRIBUTE_RESOURCES_TASK_NAME
|
||||||
)
|
)
|
||||||
@@ -136,7 +135,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
binary as Executable
|
binary as Executable
|
||||||
|
|
||||||
val type = binary.type
|
val type = binary.type
|
||||||
val webpackTask = project.registerTask<KotlinWebpack>(
|
val webpackTask = registerSubTargetTask<KotlinWebpack>(
|
||||||
disambiguateCamelCased(
|
disambiguateCamelCased(
|
||||||
binary.executeTaskBaseName,
|
binary.executeTaskBaseName,
|
||||||
WEBPACK_TASK_NAME
|
WEBPACK_TASK_NAME
|
||||||
@@ -162,12 +161,12 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
|
|
||||||
if (type == KotlinJsBinaryType.PRODUCTION) {
|
if (type == KotlinJsBinaryType.PRODUCTION) {
|
||||||
assembleTask.dependsOn(webpackTask)
|
assembleTask.dependsOn(webpackTask)
|
||||||
val webpackCommonTask = project.registerTask<Task>(
|
val webpackCommonTask = registerSubTargetTask<Task>(
|
||||||
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
disambiguateCamelCased(WEBPACK_TASK_NAME)
|
||||||
) {
|
) {
|
||||||
it.dependsOn(webpackTask)
|
it.dependsOn(webpackTask)
|
||||||
}
|
}
|
||||||
project.registerTask<Task>(disambiguateCamelCased(DISTRIBUTION_TASK_NAME)) {
|
registerSubTargetTask<Task>(disambiguateCamelCased(DISTRIBUTION_TASK_NAME)) {
|
||||||
it.dependsOn(webpackCommonTask)
|
it.dependsOn(webpackCommonTask)
|
||||||
it.dependsOn(distributeResourcesTask)
|
it.dependsOn(distributeResourcesTask)
|
||||||
|
|
||||||
|
|||||||
+13
@@ -6,7 +6,9 @@
|
|||||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||||
|
|
||||||
import org.gradle.api.NamedDomainObjectContainer
|
import org.gradle.api.NamedDomainObjectContainer
|
||||||
|
import org.gradle.api.Task
|
||||||
import org.gradle.api.plugins.ExtensionAware
|
import org.gradle.api.plugins.ExtensionAware
|
||||||
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
|
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
|
||||||
@@ -36,6 +38,8 @@ abstract class KotlinJsIrSubTarget(
|
|||||||
final override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsPlatformTestRun>
|
final override lateinit var testRuns: NamedDomainObjectContainer<KotlinJsPlatformTestRun>
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
protected val taskGroupName = "Kotlin $disambiguationClassifier"
|
||||||
|
|
||||||
internal fun configure() {
|
internal fun configure() {
|
||||||
NpmResolverPlugin.apply(project)
|
NpmResolverPlugin.apply(project)
|
||||||
|
|
||||||
@@ -154,6 +158,15 @@ abstract class KotlinJsIrSubTarget(
|
|||||||
|
|
||||||
protected abstract fun configureBuild(compilation: KotlinJsIrCompilation)
|
protected abstract fun configureBuild(compilation: KotlinJsIrCompilation)
|
||||||
|
|
||||||
|
internal inline fun <reified T : Task> registerSubTargetTask(
|
||||||
|
name: String,
|
||||||
|
noinline body: (T) -> (Unit)
|
||||||
|
): TaskProvider<T> =
|
||||||
|
project.registerTask(name) {
|
||||||
|
it.group = taskGroupName
|
||||||
|
body(it)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val RUN_TASK_NAME = "run"
|
const val RUN_TASK_NAME = "run"
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -34,6 +34,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
|||||||
val developmentExecutable = compilation.binaries.getIrBinary(KotlinJsBinaryType.DEVELOPMENT)
|
val developmentExecutable = compilation.binaries.getIrBinary(KotlinJsBinaryType.DEVELOPMENT)
|
||||||
|
|
||||||
val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) {
|
val runTaskHolder = NodeJsExec.create(compilation, disambiguateCamelCased(RUN_TASK_NAME)) {
|
||||||
|
this.group = taskGroupName
|
||||||
inputFileProperty.set(developmentExecutable.linkTask.map { it.outputFileProperty.get() })
|
inputFileProperty.set(developmentExecutable.linkTask.map { it.outputFileProperty.get() })
|
||||||
}
|
}
|
||||||
target.runTask.dependsOn(runTaskHolder)
|
target.runTask.dependsOn(runTaskHolder)
|
||||||
|
|||||||
Reference in New Issue
Block a user