From a108af76d663b8dba21545359ec88d2d950c9f14 Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Wed, 17 Jul 2019 12:07:06 +0100 Subject: [PATCH] Mark property as output instead of local state when needed Kapt task incremental annotation processing cache directory was using @LocalState annotation that was added in Gradle 4.3. However, minimum supported version is 4.2, so this commit registers this directory as output of a task for pre 4.3 versions. This is safe as caching is enabled only for Gradle 4.3+. Test: verified manually --- .../gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt | 5 +++++ .../jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt index a2e220f4e2d..d8d820e1397 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/Kapt3KotlinGradleSubplugin.kt @@ -391,6 +391,11 @@ class Kapt3KotlinGradleSubplugin : KotlinGradleSubplugin { kaptTask.isIncremental = project.isIncrementalKapt() if (kaptTask.isIncremental) { kaptTask.incAptCache = getKaptIncrementalAnnotationProcessingCache() + if (isGradleVersionAtLeast(4, 3)) { + kaptTask.localState.register(kaptTask.incAptCache) + } else { + kaptTask.outputs.files(kaptTask.incAptCache).withPropertyName("incrementalAptCache") + } maybeRegisterTransform(project) val classStructure = project.configurations.create("_classStructure${taskName}") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt index 1c88ba5043b..16169ecfc99 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptTask.kt @@ -57,9 +57,12 @@ abstract class KaptTask : ConventionTask(), TaskWithLocalState { @get:InputFiles internal var classpathStructure: FileCollection? = null - /** Output directory that contains caches necessary to support incremental annotation processing. */ - @get:LocalState - @get:Optional + /** + * Output directory that contains caches necessary to support incremental annotation processing. + * [LocalState] should be used here, but in order to be compatible with Gradle 4.2, correct input + * annotations are specified during task configuration. + */ + @get:Internal var incAptCache: File? = null @get:OutputDirectory