Kapt: compile kotlinAfterJava without Jdk as well in Android projects (KT-10854)
This commit is contained in:
+10
-1
@@ -32,6 +32,7 @@ fun Project.initKapt(
|
|||||||
kaptManager: AnnotationProcessingManager,
|
kaptManager: AnnotationProcessingManager,
|
||||||
variantName: String,
|
variantName: String,
|
||||||
kotlinOutputDir: File,
|
kotlinOutputDir: File,
|
||||||
|
kotlinOptions: Any?,
|
||||||
subpluginEnvironment: SubpluginEnvironment,
|
subpluginEnvironment: SubpluginEnvironment,
|
||||||
taskFactory: (suffix: String) -> AbstractCompile
|
taskFactory: (suffix: String) -> AbstractCompile
|
||||||
): AbstractCompile? {
|
): AbstractCompile? {
|
||||||
@@ -39,7 +40,8 @@ fun Project.initKapt(
|
|||||||
val kotlinAfterJavaTask: AbstractCompile?
|
val kotlinAfterJavaTask: AbstractCompile?
|
||||||
|
|
||||||
if (kaptExtension.generateStubs) {
|
if (kaptExtension.generateStubs) {
|
||||||
kotlinAfterJavaTask = createKotlinAfterJavaTask(javaTask, kotlinOutputDir, taskFactory)
|
kotlinAfterJavaTask = createKotlinAfterJavaTask(javaTask, kotlinTask,
|
||||||
|
kotlinOutputDir, kotlinOptions, taskFactory)
|
||||||
|
|
||||||
kotlinTask.logger.kotlinDebug("kapt: Using class file stubs")
|
kotlinTask.logger.kotlinDebug("kapt: Using class file stubs")
|
||||||
|
|
||||||
@@ -85,7 +87,9 @@ fun Project.initKapt(
|
|||||||
|
|
||||||
private fun Project.createKotlinAfterJavaTask(
|
private fun Project.createKotlinAfterJavaTask(
|
||||||
javaTask: AbstractCompile,
|
javaTask: AbstractCompile,
|
||||||
|
kotlinTask: AbstractCompile,
|
||||||
kotlinOutputDir: File,
|
kotlinOutputDir: File,
|
||||||
|
kotlinOptions: Any?,
|
||||||
taskFactory: (suffix: String) -> AbstractCompile
|
taskFactory: (suffix: String) -> AbstractCompile
|
||||||
): AbstractCompile {
|
): AbstractCompile {
|
||||||
val kotlinAfterJavaTask = with (taskFactory(KOTLIN_AFTER_JAVA_TASK_SUFFIX)) {
|
val kotlinAfterJavaTask = with (taskFactory(KOTLIN_AFTER_JAVA_TASK_SUFFIX)) {
|
||||||
@@ -102,6 +106,11 @@ private fun Project.createKotlinAfterJavaTask(
|
|||||||
|
|
||||||
kotlinAfterJavaTask.dependsOn(javaTask)
|
kotlinAfterJavaTask.dependsOn(javaTask)
|
||||||
|
|
||||||
|
kotlinAfterJavaTask.extensions.extraProperties.set("defaultModuleName", "${project.name}-${kotlinTask.name}")
|
||||||
|
if (kotlinOptions != null) {
|
||||||
|
kotlinAfterJavaTask.setProperty("kotlinOptions", kotlinOptions)
|
||||||
|
}
|
||||||
|
|
||||||
return kotlinAfterJavaTask
|
return kotlinAfterJavaTask
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -166,7 +166,7 @@ class Kotlin2JvmSourceSetProcessor(
|
|||||||
aptConfiguration.resolve(), aptOutputDir, aptWorkingDir, tasksProvider.tasksLoader)
|
aptConfiguration.resolve(), aptOutputDir, aptWorkingDir, tasksProvider.tasksLoader)
|
||||||
|
|
||||||
val kotlinAfterJavaTask = project.initKapt(kotlinTask, javaTask, kaptManager,
|
val kotlinAfterJavaTask = project.initKapt(kotlinTask, javaTask, kaptManager,
|
||||||
sourceSetName, kotlinDestinationDir, subpluginEnvironment) {
|
sourceSetName, kotlinDestinationDir, null, subpluginEnvironment) {
|
||||||
createKotlinCompileTask(it)
|
createKotlinCompileTask(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -431,7 +431,8 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand
|
|||||||
|
|
||||||
kotlinTask.storeKaptAnnotationsFile(kaptManager)
|
kotlinTask.storeKaptAnnotationsFile(kaptManager)
|
||||||
|
|
||||||
project.initKapt(kotlinTask, javaTask, kaptManager, variantDataName, kotlinOutputDir, subpluginEnvironment) {
|
project.initKapt(kotlinTask, javaTask, kaptManager, variantDataName,
|
||||||
|
kotlinOutputDir, kotlinOptions, subpluginEnvironment) {
|
||||||
tasksProvider.createKotlinJVMTask(project, kotlinTaskName + KOTLIN_AFTER_JAVA_TASK_SUFFIX)
|
tasksProvider.createKotlinJVMTask(project, kotlinTaskName + KOTLIN_AFTER_JAVA_TASK_SUFFIX)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user