From 4fe12d770464621ad54de1c4d3819ea05b363d9a Mon Sep 17 00:00:00 2001 From: Sebastian Sellmair Date: Tue, 27 Sep 2022 14:14:02 +0200 Subject: [PATCH] [Gradle][Minor] Move KotlinJsIrSourceSetProcessor into separate source file KT-54312 --- .../plugin/KotlinJsIrSourceSetProcessor.kt | 65 +++++++++++++++++++ .../kotlin/gradle/plugin/KotlinPlugin.kt | 52 --------------- 2 files changed, 65 insertions(+), 52 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsIrSourceSetProcessor.kt diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsIrSourceSetProcessor.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsIrSourceSetProcessor.kt new file mode 100644 index 00000000000..e2acebb95f3 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinJsIrSourceSetProcessor.kt @@ -0,0 +1,65 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.plugin + +import org.gradle.api.Project +import org.gradle.api.tasks.TaskProvider +import org.jetbrains.kotlin.gradle.dsl.CompilerJsOptions +import org.jetbrains.kotlin.gradle.plugin.mpp.AbstractKotlinCompilation +import org.jetbrains.kotlin.gradle.targets.js.ir.JsIrBinary +import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation +import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile +import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider +import org.jetbrains.kotlin.gradle.tasks.configuration.Kotlin2JsCompileConfig +import org.jetbrains.kotlin.gradle.tasks.configuration.KotlinJsIrLinkConfig + +internal class KotlinJsIrSourceSetProcessor( + tasksProvider: KotlinTasksProvider, + kotlinCompilation: AbstractKotlinCompilation<*> +) : KotlinSourceSetProcessor( + tasksProvider, taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.", + kotlinCompilation = kotlinCompilation +) { + override fun doRegisterTask(project: Project, taskName: String): TaskProvider { + val configAction = Kotlin2JsCompileConfig(kotlinCompilation) + applyStandardTaskConfiguration(configAction) + return tasksProvider.registerKotlinJSTask( + project, + taskName, + kotlinCompilation.compilerOptions.options as CompilerJsOptions, + configAction + ) + } + + override fun doTargetSpecificProcessing() { + project.tasks.named(kotlinCompilation.compileAllTaskName).configure { + it.dependsOn(kotlinTask) + } + + val compilation = kotlinCompilation as KotlinJsIrCompilation + + compilation.binaries + .withType(JsIrBinary::class.java) + .all { binary -> + val configAction = KotlinJsIrLinkConfig(binary) + configAction.configureTask { + it.description = taskDescription + it.libraries.from({ kotlinCompilation.compileDependencyFiles }) + } + configAction.configureTask { task -> + task.modeProperty.set(binary.mode) + task.dependsOn(kotlinTask) + } + + tasksProvider.registerKotlinJsIrTask(project, binary.linkTaskName, configAction) + } + + project.whenEvaluated { + val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project) + subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation) + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 9c08256918e..74d42803cbc 100755 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -9,7 +9,6 @@ import com.android.build.gradle.* import org.gradle.api.* import org.gradle.api.attributes.Category import org.gradle.api.attributes.Usage -import org.gradle.api.file.FileCollection import org.gradle.api.plugins.JavaPlugin import org.gradle.api.provider.Provider import org.gradle.api.publish.PublishingExtension @@ -33,8 +32,6 @@ import org.jetbrains.kotlin.gradle.targets.js.ir.* import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.configuration.* import org.jetbrains.kotlin.gradle.utils.* -import java.io.File -import java.util.concurrent.Callable const val PLUGIN_CLASSPATH_CONFIGURATION_NAME = "kotlinCompilerPluginClasspath" const val NATIVE_COMPILER_PLUGIN_CLASSPATH_CONFIGURATION_NAME = "kotlinNativeCompilerPluginClasspath" @@ -48,55 +45,6 @@ val KOTLIN_JS_DSL_NAME = "kotlin2js" val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions" - -internal class KotlinJsIrSourceSetProcessor( - tasksProvider: KotlinTasksProvider, - kotlinCompilation: AbstractKotlinCompilation<*> -) : KotlinSourceSetProcessor( - tasksProvider, taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.", - kotlinCompilation = kotlinCompilation -) { - override fun doRegisterTask(project: Project, taskName: String): TaskProvider { - val configAction = Kotlin2JsCompileConfig(kotlinCompilation) - applyStandardTaskConfiguration(configAction) - return tasksProvider.registerKotlinJSTask( - project, - taskName, - kotlinCompilation.compilerOptions.options as KotlinJsCompilerOptions, - configAction - ) - } - - override fun doTargetSpecificProcessing() { - project.tasks.named(kotlinCompilation.compileAllTaskName).configure { - it.dependsOn(kotlinTask) - } - - val compilation = kotlinCompilation as KotlinJsIrCompilation - - compilation.binaries - .withType(JsIrBinary::class.java) - .all { binary -> - val configAction = KotlinJsIrLinkConfig(binary) - configAction.configureTask { - it.description = taskDescription - it.libraries.from({ kotlinCompilation.compileDependencyFiles }) - } - configAction.configureTask { task -> - task.modeProperty.set(binary.mode) - task.dependsOn(kotlinTask) - } - - tasksProvider.registerKotlinJsIrTask(project, binary.linkTaskName, configAction) - } - - project.whenEvaluated { - val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project) - subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation) - } - } -} - internal class KotlinCommonSourceSetProcessor( compilation: KotlinCompilationData<*>, tasksProvider: KotlinTasksProvider