[Gradle, JS] Configure run tasks lazily

#KT-47559 In Progress
This commit is contained in:
Alexander Likhachev
2021-07-09 02:53:32 +03:00
parent 6a1ec92d39
commit 0740d11378
4 changed files with 9 additions and 7 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js
import org.gradle.api.NamedDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.TaskProvider
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
@@ -23,6 +24,7 @@ import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
import org.jetbrains.kotlin.gradle.tasks.locateTask
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport
import org.jetbrains.kotlin.gradle.testing.testTaskName
@@ -132,8 +134,8 @@ constructor(
get() = checkNotNull(project.locateTask(testTaskName))
val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)
val runTask
get() = project.tasks.maybeCreate(runTaskName).also {
val runTask: TaskProvider<Task>
get() = project.locateOrRegisterTask(runTaskName) {
it.description = "Run js on all configured platforms"
}
@@ -140,9 +140,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
if (mode == KotlinJsBinaryMode.DEVELOPMENT) {
target.runTask.dependsOn(runTask)
commonRunTask.configure {
it.dependsOn(runTask)
}
commonRunTask.dependsOn(runTask)
}
}
}
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import javax.inject.Inject
@@ -93,8 +94,8 @@ constructor(
.get()
private val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)
val runTask: Task
get() = project.tasks.maybeCreate(runTaskName).also {
val runTask: TaskProvider<Task>
get() = project.locateOrRegisterTask(runTaskName) {
it.description = "Run js on all configured platforms"
}
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDistributionDsl
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.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.tasks.dependsOn
import org.jetbrains.kotlin.gradle.tasks.withType
import javax.inject.Inject