Kapt: compile kotlinAfterJava without Jdk as well in Android projects (KT-10854)

This commit is contained in:
Yan Zhulanow
2016-01-29 16:22:29 +03:00
parent e5f644a64a
commit a041414f35
2 changed files with 13 additions and 3 deletions
@@ -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
}
@@ -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)
}
}