[Gradle] Use ConfigurableFileCollection for task local state

Use ConfigurableFileCollection so that tasks can simply append to the
file collection and tasks that do not need this, can simply do nothing.
This commit is contained in:
Ivan Gavrilovic
2021-04-26 17:25:05 +01:00
committed by teamcityserver
parent 571c9c10d4
commit ff27a61252
2 changed files with 5 additions and 7 deletions
@@ -6,17 +6,18 @@
package org.jetbrains.kotlin.gradle.internal.tasks
import org.gradle.api.Task
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.Internal
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
import org.jetbrains.kotlin.gradle.utils.outputsCompatible
internal interface TaskWithLocalState : Task {
fun localStateDirectories(): FileCollection
@get:Internal
val localStateDirectories: ConfigurableFileCollection
@get:Internal
val metrics: BuildMetricsReporter
}
internal fun TaskWithLocalState.allOutputFiles(): FileCollection =
outputs.files + localStateDirectories()
outputs.files + localStateDirectories
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.gradle.tasks
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileTree
import org.gradle.api.tasks.*
import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments
@@ -31,7 +30,7 @@ import org.jetbrains.kotlin.gradle.utils.canonicalPathWithoutExtension
import java.io.File
@CacheableTask
open class KotlinJsDce : AbstractKotlinCompileTool<K2JSDceArguments>(), KotlinJsDce {
abstract class KotlinJsDce : AbstractKotlinCompileTool<K2JSDceArguments>(), KotlinJsDce {
init {
cacheOnlyIfEnabledForKotlin()
@@ -40,8 +39,6 @@ open class KotlinJsDce : AbstractKotlinCompileTool<K2JSDceArguments>(), KotlinJs
@get:Internal
internal val objects = project.objects
override fun localStateDirectories(): FileCollection = project.files()
override fun createCompilerArgs(): K2JSDceArguments = K2JSDceArguments()
override fun setupCompilerArgs(args: K2JSDceArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {