[Gradle][Minor] Move Kotlin2JsSourceSetProcessor into separate source file
KT-54312
This commit is contained in:
committed by
Space Team
parent
b5327bc46e
commit
090951afd7
+60
@@ -0,0 +1,60 @@
|
||||
/*
|
||||
* 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.SourceSet
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.jetbrains.kotlin.gradle.dsl.CompilerJsOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaCompilation
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
import org.jetbrains.kotlin.gradle.tasks.configuration.Kotlin2JsCompileConfig
|
||||
import java.io.File
|
||||
|
||||
internal class Kotlin2JsSourceSetProcessor(
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinCompilation: KotlinCompilationData<*>
|
||||
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
||||
tasksProvider,
|
||||
taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
||||
kotlinCompilation = kotlinCompilation
|
||||
) {
|
||||
override fun doRegisterTask(project: Project, taskName: String): TaskProvider<out Kotlin2JsCompile> {
|
||||
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)
|
||||
}
|
||||
|
||||
if (kotlinCompilation is KotlinWithJavaCompilation<*, *>) {
|
||||
kotlinCompilation.javaSourceSet.clearJavaSrcDirs()
|
||||
}
|
||||
|
||||
|
||||
project.whenEvaluated {
|
||||
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||
if (kotlinCompilation is KotlinCompilation<*>) { // FIXME support compiler plugins with PM20
|
||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun SourceSet.clearJavaSrcDirs() {
|
||||
java.setSrcDirs(emptyList<File>())
|
||||
}
|
||||
-45
@@ -47,47 +47,7 @@ val KOTLIN_DSL_NAME = "kotlin"
|
||||
val KOTLIN_JS_DSL_NAME = "kotlin2js"
|
||||
val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions"
|
||||
|
||||
internal fun KotlinCompilationOutput.addClassesDir(classesDirProvider: () -> FileCollection) {
|
||||
classesDirs.from(Callable { classesDirProvider() })
|
||||
}
|
||||
|
||||
internal class Kotlin2JsSourceSetProcessor(
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
kotlinCompilation: KotlinCompilationData<*>
|
||||
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
||||
tasksProvider,
|
||||
taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
||||
kotlinCompilation = kotlinCompilation
|
||||
) {
|
||||
override fun doRegisterTask(project: Project, taskName: String): TaskProvider<out Kotlin2JsCompile> {
|
||||
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)
|
||||
}
|
||||
|
||||
if (kotlinCompilation is KotlinWithJavaCompilation<*, *>) {
|
||||
kotlinCompilation.javaSourceSet.clearJavaSrcDirs()
|
||||
}
|
||||
|
||||
|
||||
project.whenEvaluated {
|
||||
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||
if (kotlinCompilation is KotlinCompilation<*>) { // FIXME support compiler plugins with PM20
|
||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class KotlinJsIrSourceSetProcessor(
|
||||
tasksProvider: KotlinTasksProvider,
|
||||
@@ -609,8 +569,3 @@ class KotlinConfigurationTools internal constructor(
|
||||
@Suppress("EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING", "EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR")
|
||||
val kotlinTasksProvider: KotlinTasksProvider
|
||||
)
|
||||
|
||||
|
||||
private fun SourceSet.clearJavaSrcDirs() {
|
||||
java.setSrcDirs(emptyList<File>())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user