From 2cae5f01cf839992ad9ee3c3d4577c7f925b0be0 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Thu, 28 Jul 2016 18:04:20 +0300 Subject: [PATCH] Move call to kotlinTask.source to doTargetSpecificProcessing --- .../kotlin/gradle/plugin/KotlinPlugin.kt | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index bbfc143c7aa..2025a0ebae9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -61,9 +61,9 @@ abstract class KotlinSourceSetProcessor( protected val sourceSetName: String = sourceSet.name protected val sourceRootDir: String = "src/${sourceSetName}/kotlin" protected val absoluteSourceRootDir: String = project.projectDir.path + "/" + sourceRootDir - protected val kotlinSourceSet: KotlinSourceSet? by lazy { createKotlinSourceSet() } - protected val kotlinDirSet: SourceDirectorySet? by lazy { createKotlinDirSet() } - protected val kotlinTask: T by lazy { createKotlinCompileTask() } + protected val kotlinSourceSet: KotlinSourceSet? = createKotlinSourceSet() + protected val kotlinDirSet: SourceDirectorySet? = createKotlinDirSet() + protected val kotlinTask: T = createKotlinCompileTask() protected val kotlinTaskName: String by lazy { kotlinTask.name } public fun run() { @@ -71,11 +71,10 @@ abstract class KotlinSourceSetProcessor( return } addKotlinDirSetToSources() - commonTaskConfiguration() doTargetSpecificProcessing() } - open protected fun createKotlinSourceSet(): KotlinSourceSet? = + private fun createKotlinSourceSet(): KotlinSourceSet? = if (sourceSet is HasConvention) { logger.kotlinDebug("Creating KotlinSourceSet for source set ${sourceSet}") val kotlinSourceSet = KotlinSourceSetImpl(sourceSet.name, project.fileResolver) @@ -85,7 +84,7 @@ abstract class KotlinSourceSetProcessor( null } - open protected fun createKotlinDirSet(): SourceDirectorySet? { + private fun createKotlinDirSet(): SourceDirectorySet? { val srcDir = project.file(sourceRootDir) logger.kotlinDebug("Creating Kotlin SourceDirectorySet for source set $kotlinSourceSet with src dir $srcDir") val kotlinDirSet = kotlinSourceSet?.getKotlin() @@ -100,20 +99,15 @@ abstract class KotlinSourceSetProcessor( sourceSet.resources?.filter?.exclude { kotlinDirSet!!.contains(it.file) } } - open protected fun createKotlinCompileTask(suffix: String = ""): T { + private fun createKotlinCompileTask(suffix: String = ""): T { val name = sourceSet.getCompileTaskName(compileTaskNameSuffix) + suffix logger.kotlinDebug("Creating kotlin compile task $name") val kotlinCompile = doCreateTask(project, name) + kotlinCompile.description = taskDescription kotlinCompile.extensions.extraProperties.set("defaultModuleName", "${project.name}-$name") return kotlinCompile } - open protected fun commonTaskConfiguration() { - javaBasePlugin.configureForSourceSet(sourceSet, kotlinTask) - kotlinTask.description = taskDescription - kotlinTask.source(kotlinDirSet) - } - protected abstract fun doCreateTask(project: Project, taskName: String): T } @@ -151,10 +145,6 @@ class Kotlin2JvmSourceSetProcessor( if (project != null) { kotlinTask.destinationDir = File(project.buildDir, "kotlin-classes/$sourceSetName") - for (dir in sourceSet.java.srcDirs) { - kotlinDirSet?.srcDir(dir) - } - val subpluginEnvironment = loadSubplugins(project) subpluginEnvironment.addSubpluginArguments(project, kotlinTask) @@ -174,6 +164,10 @@ class Kotlin2JvmSourceSetProcessor( kotlinAfterJavaTask = project.initKapt(kotlinTask, javaTask, kaptManager, sourceSetName, null, subpluginEnvironment, tasksProvider) } + sourceSet.java.srcDirs.forEach { kotlinDirSet?.srcDir(it) } + // KotlinCompile.source(kotlinDirSet) should be called only after all java roots are added to kotlinDirSet + // otherwise some java roots can be ignored + kotlinTask.source(kotlinDirSet) kotlinAfterJavaTask?.let { it.source(kotlinDirSet) } configureJavaTask(kotlinTask, javaTask, kotlinAfterJavaTask, logger) createSyncOutputTask(project, kotlinTask, javaTask, kotlinAfterJavaTask, sourceSetName) @@ -217,6 +211,7 @@ class Kotlin2JsSourceSetProcessor( kotlinTask.destinationDir = defaultKotlinDestinationDir build?.dependsOn(kotlinTaskName) clean?.dependsOn("clean" + kotlinTaskName.capitalize()) + kotlinTask.source(kotlinDirSet) createCleanSourceMapTask() }