Fix CCE when creating kotlin-js task in gradle plugin
This commit is contained in:
+18
-15
@@ -45,11 +45,10 @@ abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
|
|||||||
val project: ProjectInternal,
|
val project: ProjectInternal,
|
||||||
val javaBasePlugin: JavaBasePlugin,
|
val javaBasePlugin: JavaBasePlugin,
|
||||||
val sourceSet: SourceSet,
|
val sourceSet: SourceSet,
|
||||||
|
val tasksProvider: KotlinTasksProvider,
|
||||||
val pluginName: String,
|
val pluginName: String,
|
||||||
val compileTaskNameSuffix: String,
|
val compileTaskNameSuffix: String,
|
||||||
val taskDescription: String,
|
val taskDescription: String
|
||||||
val compilerClass: Class<T>,
|
|
||||||
val tasksProvider: KotlinTasksProvider
|
|
||||||
) {
|
) {
|
||||||
abstract protected fun doTargetSpecificProcessing()
|
abstract protected fun doTargetSpecificProcessing()
|
||||||
val logger = Logging.getLogger(this.javaClass)
|
val logger = Logging.getLogger(this.javaClass)
|
||||||
@@ -98,10 +97,10 @@ abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
|
|||||||
|
|
||||||
open protected fun createKotlinCompileTask(suffix: String = ""): T {
|
open protected fun createKotlinCompileTask(suffix: String = ""): T {
|
||||||
val name = sourceSet.getCompileTaskName(compileTaskNameSuffix) + suffix
|
val name = sourceSet.getCompileTaskName(compileTaskNameSuffix) + suffix
|
||||||
logger.kotlinDebug("Creating kotlin compile task $name with class $compilerClass")
|
logger.kotlinDebug("Creating kotlin compile task $name")
|
||||||
val compile = tasksProvider.createKotlinJVMTask(project, name)
|
val kotlinCompile = doCreateTask(project, name)
|
||||||
compile.extensions.extraProperties.set("defaultModuleName", "${project.name}-$name")
|
kotlinCompile.extensions.extraProperties.set("defaultModuleName", "${project.name}-$name")
|
||||||
return compilerClass.cast(compile)
|
return kotlinCompile
|
||||||
}
|
}
|
||||||
|
|
||||||
open protected fun commonTaskConfiguration() {
|
open protected fun commonTaskConfiguration() {
|
||||||
@@ -110,6 +109,8 @@ abstract class KotlinSourceSetProcessor<T : AbstractCompile>(
|
|||||||
kotlinTask.source(kotlinDirSet)
|
kotlinTask.source(kotlinDirSet)
|
||||||
mapKotlinTaskProperties(project, kotlinTask)
|
mapKotlinTaskProperties(project, kotlinTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected abstract fun doCreateTask(project: Project, taskName: String): T
|
||||||
}
|
}
|
||||||
|
|
||||||
class Kotlin2JvmSourceSetProcessor(
|
class Kotlin2JvmSourceSetProcessor(
|
||||||
@@ -119,18 +120,19 @@ class Kotlin2JvmSourceSetProcessor(
|
|||||||
val scriptHandler: ScriptHandler,
|
val scriptHandler: ScriptHandler,
|
||||||
tasksProvider: KotlinTasksProvider
|
tasksProvider: KotlinTasksProvider
|
||||||
) : KotlinSourceSetProcessor<AbstractCompile>(
|
) : KotlinSourceSetProcessor<AbstractCompile>(
|
||||||
project, javaBasePlugin, sourceSet,
|
project, javaBasePlugin, sourceSet, tasksProvider,
|
||||||
pluginName = "kotlin",
|
pluginName = "kotlin",
|
||||||
compileTaskNameSuffix = "kotlin",
|
compileTaskNameSuffix = "kotlin",
|
||||||
taskDescription = "Compiles the $sourceSet.kotlin.",
|
taskDescription = "Compiles the $sourceSet.kotlin."
|
||||||
compilerClass = tasksProvider.kotlinJVMCompileTaskClass,
|
|
||||||
tasksProvider = tasksProvider
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
private var cachedKotlinAnnotationProcessingDep: String? = null
|
private var cachedKotlinAnnotationProcessingDep: String? = null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun doCreateTask(project: Project, taskName: String): AbstractCompile =
|
||||||
|
tasksProvider.createKotlinJVMTask(project, taskName)
|
||||||
|
|
||||||
override fun doTargetSpecificProcessing() {
|
override fun doTargetSpecificProcessing() {
|
||||||
val kotlinAnnotationProcessingDep = cachedKotlinAnnotationProcessingDep ?: run {
|
val kotlinAnnotationProcessingDep = cachedKotlinAnnotationProcessingDep ?: run {
|
||||||
val projectVersion = loadKotlinVersionFromResource(project.logger)
|
val projectVersion = loadKotlinVersionFromResource(project.logger)
|
||||||
@@ -190,12 +192,10 @@ class Kotlin2JsSourceSetProcessor(
|
|||||||
val scriptHandler: ScriptHandler,
|
val scriptHandler: ScriptHandler,
|
||||||
tasksProvider: KotlinTasksProvider
|
tasksProvider: KotlinTasksProvider
|
||||||
) : KotlinSourceSetProcessor<AbstractCompile>(
|
) : KotlinSourceSetProcessor<AbstractCompile>(
|
||||||
project, javaBasePlugin, sourceSet,
|
project, javaBasePlugin, sourceSet, tasksProvider,
|
||||||
pluginName = "kotlin2js",
|
pluginName = "kotlin2js",
|
||||||
taskDescription = "Compiles the kotlin sources in $sourceSet to JavaScript.",
|
taskDescription = "Compiles the kotlin sources in $sourceSet to JavaScript.",
|
||||||
compileTaskNameSuffix = "kotlin2Js",
|
compileTaskNameSuffix = "kotlin2Js"
|
||||||
compilerClass = tasksProvider.kotlinJSCompileTaskClass,
|
|
||||||
tasksProvider = tasksProvider
|
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val copyKotlinJsTaskName = sourceSet.getTaskName("copy", "kotlinJs")
|
val copyKotlinJsTaskName = sourceSet.getTaskName("copy", "kotlinJs")
|
||||||
@@ -213,6 +213,9 @@ class Kotlin2JsSourceSetProcessor(
|
|||||||
|
|
||||||
private fun shouldGenerateSourceMap() = kotlinTask.property("sourceMap")
|
private fun shouldGenerateSourceMap() = kotlinTask.property("sourceMap")
|
||||||
|
|
||||||
|
override fun doCreateTask(project: Project, taskName: String): AbstractCompile =
|
||||||
|
tasksProvider.createKotlinJSTask(project, taskName)
|
||||||
|
|
||||||
override fun doTargetSpecificProcessing() {
|
override fun doTargetSpecificProcessing() {
|
||||||
kotlinTask.kotlinDestinationDir = defaultKotlinDestinationDir
|
kotlinTask.kotlinDestinationDir = defaultKotlinDestinationDir
|
||||||
build?.dependsOn(kotlinTaskName)
|
build?.dependsOn(kotlinTaskName)
|
||||||
|
|||||||
Reference in New Issue
Block a user