From e83315f5bc152b908d6fb930b9a81c53708b2330 Mon Sep 17 00:00:00 2001 From: Natalia Ukhorskaya Date: Mon, 26 Oct 2015 16:37:13 +0300 Subject: [PATCH] Gradle plugin: do not store generated folder for android into sourceSets, because they are reused for different buildTypes and flavors #KT-8202 Fixed #KT-9715 Fixed --- .../jetbrains/kotlin/gradle/tasks/Tasks.kt | 35 ++++++++++++------- .../kotlin/gradle/plugin/KotlinPlugin.kt | 21 +++++------ 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index eb8a65e077d..f464e2d86cb 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -10,8 +10,8 @@ import org.gradle.api.GradleException import org.gradle.api.file.SourceDirectorySet import org.gradle.api.logging.Logger import org.gradle.api.logging.Logging +import org.gradle.api.plugins.ExtraPropertiesExtension import org.gradle.api.tasks.SourceTask -import java.util.HashSet import org.gradle.api.tasks.TaskAction import org.gradle.api.tasks.compile.AbstractCompile import org.jetbrains.kotlin.cli.common.CLICompiler @@ -26,13 +26,8 @@ import org.jetbrains.kotlin.cli.js.K2JSCompiler import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler import org.jetbrains.kotlin.config.Services import org.jetbrains.kotlin.utils.LibraryUtils -import org.gradle.api.file.FileCollection -import org.gradle.api.plugins.ExtraPropertiesExtension -import org.gradle.api.tasks.compile.JavaCompile -import org.jetbrains.org.objectweb.asm.ClassWriter -import java.io.IOException -import java.lang.ref.WeakReference import java.io.File +import java.util.* val DEFAULT_ANNOTATIONS = "org.jebrains.kotlin.gradle.defaultAnnotations" @@ -102,7 +97,8 @@ public open class KotlinCompile() : AbstractKotlinCompile() + // Should be SourceDirectorySet or File + val srcDirsSources = HashSet() override fun populateTargetSpecificArgs(args: K2JVMCompilerArguments) { // show kotlin compiler where to look for java source files @@ -178,30 +174,43 @@ public open class KotlinCompile() : AbstractKotlinCompile(defaultSourceSet, "kotlin").getKotlin() - // getJavaSources should return the Java sources used for compilation - // We want to collect only generated files, like R-class output dir - // Actual java sources will be collected later - val additionalSourceFiles = variantData.getJavaSources().filterIsInstance(javaClass()) - kotlinSourceDirectorySet.addSourceDirectories(additionalSourceFiles) - } - - configureDefaultSourceSet() - val aptFiles = arrayListOf() // getSortedSourceProviders should return only actual java sources, generated sources should be collected earlier @@ -405,6 +393,15 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand } } + // getJavaSources should return the Java sources used for compilation + // We want to collect only generated files, like R-class output dir + // Actual java sources will be collected later + val additionalSourceFiles = variantData.getJavaSources().filterIsInstance(javaClass()) + for (file in additionalSourceFiles) { + kotlinTask.source(file) + logger.kotlinDebug("Source directory with generated files ${file.getAbsolutePath()} was added to kotlin source for $kotlinTaskName") + } + subpluginEnvironment.addSubpluginArguments(project, kotlinTask) kotlinTask doFirst {