From 2f4f4dbbd8c9567474e91c2441715cb129ef2782 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Thu, 26 Dec 2019 14:26:04 +0300 Subject: [PATCH] [Gradle, JS] Fix deprecation replace with on register task --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 31 +++++++++++++------ .../kotlin/gradle/tasks/TasksProvider.kt | 6 ++-- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 9fe0db933a0..bebde18da84 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -22,10 +22,7 @@ import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.plugins.MavenPluginConvention import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.tasks.CompileClasspathNormalizer -import org.gradle.api.tasks.SourceSet -import org.gradle.api.tasks.TaskProvider -import org.gradle.api.tasks.Upload +import org.gradle.api.tasks.* import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.compile.JavaCompile import org.gradle.jvm.tasks.Jar @@ -39,6 +36,7 @@ import org.jetbrains.kotlin.gradle.logging.kotlinWarn import org.jetbrains.kotlin.gradle.model.builder.KotlinModelBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -311,12 +309,12 @@ internal class Kotlin2JsSourceSetProcessor( private fun registerCleanSourceMapTask() { val taskName = kotlinCompilation.composeName("clean", "sourceMap") - project.createOrRegisterTask(taskName, { + project.registerTask(taskName) { it.onlyIf { kotlinTask.get().kotlinOptions.sourceMap } it.delete(object : Closure(this) { override fun call(): String? = (kotlinTask.get().property("outputFile") as File).canonicalPath + ".map" }) - }) + } project.tasks.findByName("clean")?.dependsOn(taskName) } } @@ -344,6 +342,21 @@ internal class KotlinJsIrSourceSetProcessor( registerCleanSourceMapTask() + val compilation = kotlinCompilation as KotlinJsIrCompilation + + listOf( + compilation.productionCompileTaskName, + compilation.developmentCompileTaskName + ).forEach { taskName -> + doRegisterTask( + project, + taskName + ) { + it.description = taskDescription + it.mapClasspath { kotlinCompilation.compileDependencyFiles } + } + } + // outputFile can be set later during the configuration phase, get it only after the phase: project.runOnceAfterEvaluated("Kotlin2JsSourceSetProcessor.doTargetSpecificProcessing", kotlinTask) { val kotlinTaskInstance = kotlinTask.get() @@ -373,7 +386,7 @@ internal class KotlinJsIrSourceSetProcessor( private fun registerCleanSourceMapTask() { val taskName = kotlinCompilation.composeName("clean", "sourceMap") - project.createOrRegisterTask(taskName) { + project.registerTask(taskName) { it.onlyIf { kotlinTask.get().kotlinOptions.sourceMap } it.delete(object : Closure(this) { override fun call(): String? = (kotlinTask.get().property("outputFile") as File).canonicalPath + ".map" @@ -511,12 +524,12 @@ internal abstract class AbstractKotlinPlugin( return } val inspectTask = - project.createOrRegisterTask("inspectClassesForKotlinIC", { + project.registerTask("inspectClassesForKotlinIC") { it.sourceSetName = SourceSet.MAIN_SOURCE_SET_NAME it.archivePath.set(project.provider { jarTask.archivePathCompatible.canonicalPath }) it.archiveName.set(project.provider { jarTask.archiveNameCompatible }) it.dependsOn(classesTask) - }) + } jarTask.dependsOn(inspectTask) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt index 05631b80fca..f991234ea95 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/TasksProvider.kt @@ -20,15 +20,17 @@ import org.gradle.api.Project import org.gradle.api.Task import org.gradle.api.UnknownTaskException import org.gradle.api.tasks.TaskProvider -import org.jetbrains.kotlin.gradle.plugin.* +import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider +import org.jetbrains.kotlin.gradle.plugin.mapKotlinTaskProperties import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinCompilation +import org.jetbrains.kotlin.gradle.plugin.runOnceAfterEvaluated import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToKotlinOptions /** * Registers the task with [name] and [type] and initialization script [body] */ @JvmName("registerTaskOld") -@Deprecated("please use Project.createOrRegisterTask", ReplaceWith("project.createOrRegisterTask(name, body)")) +@Deprecated("please use Project.createOrRegisterTask", ReplaceWith("project.registerTask(name, type, emptyList(), body)")) internal fun registerTask(project: Project, name: String, type: Class, body: (T) -> (Unit)): TaskProvider = project.registerTask(name, type, emptyList(), body)