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.
This commit is contained in:
Yan Zhulanow
2017-01-31 20:28:41 +03:00
committed by Yan Zhulanow
parent 1797ea62f4
commit 5a46c01f76
2 changed files with 4 additions and 5 deletions
@@ -157,8 +157,6 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
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<KotlinCompile> {
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<KotlinCompile> {
// 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)
@@ -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())
}
}