From 5a46c01f76a01fe792228a8f00a82cde215e64f5 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 31 Jan 2017 20:28:41 +0300 Subject: [PATCH] Kapt3: Add generated source files to Java compile task after kapt execution. Filter only .java files. This is needed to generate Kotlin files using kapt. --- .../kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt | 4 +--- .../kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt index b9c4873577c..17941dfafd9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/Kapt3KotlinGradleSubplugin.kt @@ -157,8 +157,6 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { kaptClasspath.forEach { pluginOptions += SubpluginOption("apclasspath", it.absolutePath) } - javaCompile.source(generatedFilesDir) - pluginOptions += SubpluginOption("sources", generatedFilesDir.canonicalPath) pluginOptions += SubpluginOption("classes", getKaptClasssesDir(project, sourceSetName).canonicalPath) @@ -204,6 +202,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { val kaptTaskName = kotlinCompile.name.replaceFirst("compile", "kapt") val kaptTask = project.tasks.create(kaptTaskName, KaptTask::class.java) kaptTask.kotlinCompileTask = kotlinCompile + kaptTask.javaCompileTask = javaCompile kotlinToKaptTasksMap[kotlinCompile] = kaptTask project.resolveSubpluginArtifacts(listOf(this@Kapt3KotlinGradleSubplugin)).flatMap { it.value }.forEach { @@ -218,7 +217,6 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { // Add generated source dir as a source root for kotlinCompile and javaCompile kotlinCompile.source(sourcesOutputDir) - javaCompile.source(sourcesOutputDir) variantData?.let { if (AndroidGradleWrapper.isJackEnabled(it)) { AndroidGradleWrapper.addSourceToJack(it, sourcesOutputDir) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt index c0bdf5f365d..22610651d9c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/KaptTask.kt @@ -15,8 +15,6 @@ import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.incremental.classpathAsList import org.jetbrains.kotlin.incremental.destinationAsFile import java.io.File -import java.net.URLDecoder -import java.nio.charset.Charset open class KaptTask : AbstractCompile() { private val rawSourceRoots = FilteringSourceRootsContainer({ !it.isInsideDestinationDir() }) @@ -24,6 +22,7 @@ open class KaptTask : AbstractCompile() { internal val pluginOptions = CompilerPluginOptions() internal lateinit var kotlinCompileTask: KotlinCompile + internal lateinit var javaCompileTask: AbstractCompile override fun setSource(sources: Any?) { val filteredSources = rawSourceRoots.set(sources) @@ -75,5 +74,7 @@ open class KaptTask : AbstractCompile() { val compilerRunner = GradleCompilerRunner(project) val exitCode = compilerRunner.runJvmCompiler(sourceRoots.kotlinSourceFiles, sourceRoots.javaSourceRoots, args, environment) throwGradleExceptionIfError(exitCode) + + javaCompileTask.source(destinationDir.walkTopDown().filter { it.extension == "java" }.toList()) } } \ No newline at end of file