From 0a450c17394ba6e894a8a9713650ac3c3180812f Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 25 May 2015 18:40:47 +0300 Subject: [PATCH] Fix compatibility issues with Android Gradle plugin 1.2 --- .../jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt | 12 ++++++++---- .../plugin/android/AndroidGradleWrapper.groovy | 6 ++++++ 2 files changed, 14 insertions(+), 4 deletions(-) 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 56f150fedbd..18f8692e884 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 @@ -365,7 +365,7 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t val variantDataName = variantData.getName() logger.kotlinDebug("Process variant [$variantDataName]") - val javaTask = variantData.javaCompileTask + val javaTask = AndroidGradleWrapper.getJavaCompile(variantData) val kotlinTaskName = "compile${variantDataName.capitalize()}Kotlin" val kotlinTask = tasksProvider.createKotlinJVMTask(project, kotlinTaskName) @@ -432,12 +432,16 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t javaTask.dependsOn(kotlinTaskName) - val kaptManager = AnnotationProcessingManager(kotlinTask, javaTask, aptFiles.toSet(), aptOutputDir, aptWorkingDir) - kotlinTask.storeKaptAnnotationsFile(kaptManager) + val kaptManager = if (javaTask is JavaCompile) { + val manager = AnnotationProcessingManager(kotlinTask, javaTask, aptFiles.toSet(), aptOutputDir, aptWorkingDir) + kotlinTask.storeKaptAnnotationsFile(manager) + manager + } + else null javaTask doFirst { javaTask.setClasspath(javaTask.getClasspath() + project.files(kotlinTask.property("kotlinDestinationDir"))) - kaptManager.setupKapt() + kaptManager?.setupKapt() } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy index 1644347f647..58cc0f0718f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy @@ -6,6 +6,7 @@ import com.android.build.gradle.api.ApkVariant import com.android.build.gradle.api.BaseVariant import com.android.build.gradle.api.TestVariant import org.gradle.api.internal.DefaultDomainObjectSet +import org.gradle.api.tasks.compile.AbstractCompile import org.gradle.api.tasks.util.PatternFilterable import org.jetbrains.annotations.NotNull @@ -43,6 +44,11 @@ class AndroidGradleWrapper { return variant.getBuildType().getName() } + @NotNull + static def AbstractCompile getJavaCompile(Object baseVariantData) { + return baseVariantData.javaCompileTask + } + @NotNull static def Set getJavaSrcDirs(Object androidSourceSet) { return androidSourceSet.getJava().getSrcDirs()