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