Kapt: Register kapt classes output directory as Java classes directory (KT-19211)
This is relevant to pure (non-Android) Java projects and Gradle 4.0+.
This commit is contained in:
+6
-1
@@ -110,6 +110,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
val javaCompile: AbstractCompile,
|
val javaCompile: AbstractCompile,
|
||||||
val kaptVariantData: KaptVariantData<*>?,
|
val kaptVariantData: KaptVariantData<*>?,
|
||||||
val sourceSetName: String,
|
val sourceSetName: String,
|
||||||
|
val javaSourceSet: SourceSet?,
|
||||||
val kaptExtension: KaptExtension,
|
val kaptExtension: KaptExtension,
|
||||||
val kaptClasspath: MutableList<File>) {
|
val kaptClasspath: MutableList<File>) {
|
||||||
val sourcesOutputDir = getKaptGeneratedDir(project, sourceSetName)
|
val sourcesOutputDir = getKaptGeneratedDir(project, sourceSetName)
|
||||||
@@ -168,7 +169,7 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
val kaptExtension = project.extensions.getByType(KaptExtension::class.java)
|
val kaptExtension = project.extensions.getByType(KaptExtension::class.java)
|
||||||
|
|
||||||
val context = Kapt3SubpluginContext(project, kotlinCompile, javaCompile,
|
val context = Kapt3SubpluginContext(project, kotlinCompile, javaCompile,
|
||||||
kaptVariantData, sourceSetName, kaptExtension, kaptClasspath)
|
kaptVariantData, sourceSetName, javaSourceSet, kaptExtension, kaptClasspath)
|
||||||
|
|
||||||
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
|
val kaptGenerateStubsTask = context.createKaptGenerateStubsTask()
|
||||||
val kaptTask = context.createKaptKotlinTask()
|
val kaptTask = context.createKaptKotlinTask()
|
||||||
@@ -283,6 +284,10 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin<KotlinCompile> {
|
|||||||
kaptTask.destinationDir = sourcesOutputDir
|
kaptTask.destinationDir = sourcesOutputDir
|
||||||
kaptTask.classesDir = classesOutputDir
|
kaptTask.classesDir = classesOutputDir
|
||||||
|
|
||||||
|
javaSourceSet?.output?.apply {
|
||||||
|
tryAddClassesDir { project.files(classesOutputDir).builtBy(kaptTask) }
|
||||||
|
}
|
||||||
|
|
||||||
kotlinCompile.source(sourcesOutputDir, kotlinSourcesOutputDir)
|
kotlinCompile.source(sourcesOutputDir, kotlinSourcesOutputDir)
|
||||||
|
|
||||||
if (kaptVariantData != null) {
|
if (kaptVariantData != null) {
|
||||||
|
|||||||
+1
-1
@@ -193,7 +193,7 @@ internal class Kotlin2JvmSourceSetProcessor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SourceSetOutput.tryAddClassesDir(
|
internal fun SourceSetOutput.tryAddClassesDir(
|
||||||
classesDirProvider: () -> FileCollection
|
classesDirProvider: () -> FileCollection
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val getClassesDirs = ReflectionUtil.findMethod(
|
val getClassesDirs = ReflectionUtil.findMethod(
|
||||||
|
|||||||
Reference in New Issue
Block a user