[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_JS_DSL_NAME = "kotlin2js"
|
||||||
val KOTLIN_OPTIONS_DSL_NAME = "kotlinOptions"
|
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(
|
internal class KotlinJsIrSourceSetProcessor(
|
||||||
tasksProvider: KotlinTasksProvider,
|
tasksProvider: KotlinTasksProvider,
|
||||||
@@ -609,8 +569,3 @@ class KotlinConfigurationTools internal constructor(
|
|||||||
@Suppress("EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING", "EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR")
|
@Suppress("EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING", "EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR")
|
||||||
val kotlinTasksProvider: KotlinTasksProvider
|
val kotlinTasksProvider: KotlinTasksProvider
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
private fun SourceSet.clearJavaSrcDirs() {
|
|
||||||
java.setSrcDirs(emptyList<File>())
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user