From 426f164e023e36a0d12dd611cc64356bbb00f00b Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Tue, 2 Jun 2020 17:44:15 +0300 Subject: [PATCH] [Gradle, JS] Webpack on file providers for task configuration avoidance --- .../gradle/targets/js/webpack/KotlinWebpack.kt | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt index 33d737d021b..edb80a0b437 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/webpack/KotlinWebpack.kt @@ -11,6 +11,7 @@ import org.gradle.api.file.FileCollection import org.gradle.api.file.RegularFileProperty import org.gradle.api.internal.file.FileResolver import org.gradle.api.plugins.BasePluginConvention +import org.gradle.api.provider.Provider import org.gradle.api.tasks.* import org.gradle.deployment.internal.Deployment import org.gradle.deployment.internal.DeploymentHandle @@ -127,10 +128,20 @@ open class KotlinWebpack : DefaultTask(), RequiresNpmDependencies { var report: Boolean = false open val reportDir: File - @OutputDirectory get() = project.reportsDir.resolve("webpack").resolve(entry.nameWithoutExtension) + @Internal get() = reportDirProvider.get() + + open val reportDirProvider: Provider + @OutputDirectory get() = entryProperty + .map { it.asFile.nameWithoutExtension } + .map { + project.reportsDir.resolve("webpack").resolve(it) + } open val evaluatedConfigFile: File - @OutputFile get() = reportDir.resolve("webpack.config.evaluated.js") + @Internal get() = evaluatedConfigFileProvider.get() + + open val evaluatedConfigFileProvider: Provider + @OutputFile get() = reportDirProvider.map { it.resolve("webpack.config.evaluated.js") } @Input var bin: String = "webpack/bin/webpack.js"