From a041414f353d7576476869108194eacf91e08d2c Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 29 Jan 2016 16:22:29 +0300 Subject: [PATCH] Kapt: compile kotlinAfterJava without Jdk as well in Android projects (KT-10854) --- .../gradle/internal/AnnotationProcessingManager.kt | 11 ++++++++++- .../jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 5 +++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AnnotationProcessingManager.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AnnotationProcessingManager.kt index b054f258204..11e456de31a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AnnotationProcessingManager.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/AnnotationProcessingManager.kt @@ -32,6 +32,7 @@ fun Project.initKapt( kaptManager: AnnotationProcessingManager, variantName: String, kotlinOutputDir: File, + kotlinOptions: Any?, subpluginEnvironment: SubpluginEnvironment, taskFactory: (suffix: String) -> AbstractCompile ): AbstractCompile? { @@ -39,7 +40,8 @@ fun Project.initKapt( val kotlinAfterJavaTask: AbstractCompile? if (kaptExtension.generateStubs) { - kotlinAfterJavaTask = createKotlinAfterJavaTask(javaTask, kotlinOutputDir, taskFactory) + kotlinAfterJavaTask = createKotlinAfterJavaTask(javaTask, kotlinTask, + kotlinOutputDir, kotlinOptions, taskFactory) kotlinTask.logger.kotlinDebug("kapt: Using class file stubs") @@ -85,7 +87,9 @@ fun Project.initKapt( private fun Project.createKotlinAfterJavaTask( javaTask: AbstractCompile, + kotlinTask: AbstractCompile, kotlinOutputDir: File, + kotlinOptions: Any?, taskFactory: (suffix: String) -> AbstractCompile ): AbstractCompile { val kotlinAfterJavaTask = with (taskFactory(KOTLIN_AFTER_JAVA_TASK_SUFFIX)) { @@ -102,6 +106,11 @@ private fun Project.createKotlinAfterJavaTask( kotlinAfterJavaTask.dependsOn(javaTask) + kotlinAfterJavaTask.extensions.extraProperties.set("defaultModuleName", "${project.name}-${kotlinTask.name}") + if (kotlinOptions != null) { + kotlinAfterJavaTask.setProperty("kotlinOptions", kotlinOptions) + } + return kotlinAfterJavaTask } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index ed8266e1d2b..6cb143f98e6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -166,7 +166,7 @@ class Kotlin2JvmSourceSetProcessor( aptConfiguration.resolve(), aptOutputDir, aptWorkingDir, tasksProvider.tasksLoader) val kotlinAfterJavaTask = project.initKapt(kotlinTask, javaTask, kaptManager, - sourceSetName, kotlinDestinationDir, subpluginEnvironment) { + sourceSetName, kotlinDestinationDir, null, subpluginEnvironment) { createKotlinCompileTask(it) } @@ -431,7 +431,8 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand 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) } }