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 74844bea789..7bbfbe1033a 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 @@ -595,7 +595,6 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To if (taskClass == KaptWithoutKotlincTask::class.java) { kaptTaskProvider.configure { it as KaptWithoutKotlincTask - it.isVerbose = project.isKaptVerbose() it.mapDiagnosticLocations = kaptExtension.mapDiagnosticLocations it.annotationProcessorFqNames = kaptExtension.processors.split(',').filter { it.isNotEmpty() } it.javacOptions = dslJavacOptions.get() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt index 8f0157d7008..9ea51cfcee0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptGenerateStubsTask.kt @@ -63,6 +63,7 @@ abstract class KaptGenerateStubsTask : KotlinCompile(KotlinJvmOptionsImpl()) { } } ) + task.verbose.set(KaptTask.queryKaptVerboseProperty(task.project)) } } @@ -85,7 +86,7 @@ abstract class KaptGenerateStubsTask : KotlinCompile(KotlinJvmOptionsImpl()) { internal abstract val kotlinTaskPluginClasspath: ConfigurableFileCollection @get:Input - val verbose = (project.hasProperty("kapt.verbose") && project.property("kapt.verbose").toString().toBoolean() == true) + abstract val verbose: Property override fun source(vararg sources: Any): SourceTask { return super.source(sourceRootsContainer.add(sources)) @@ -112,7 +113,7 @@ abstract class KaptGenerateStubsTask : KotlinCompile(KotlinJvmOptionsImpl()) { val pluginOptionsWithKapt = pluginOptions.withWrappedKaptOptions(withApClasspath = kaptClasspath) args.pluginOptions = (pluginOptionsWithKapt.arguments + args.pluginOptions!!).toTypedArray() - args.verbose = verbose + args.verbose = verbose.get() args.classpathAsList = this.classpath.filter { it.exists() }.toList() args.destinationAsFile = this.destinationDir } 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 1401f84fbf8..692adcaa107 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 @@ -1,5 +1,6 @@ package org.jetbrains.kotlin.gradle.internal +import org.gradle.api.Project import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.FileCollection @@ -22,6 +23,8 @@ import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.cacheOnlyIfEnabledForKotlin import org.jetbrains.kotlin.gradle.tasks.clearLocalState import org.jetbrains.kotlin.gradle.utils.getValue +import org.jetbrains.kotlin.gradle.utils.isConfigurationCacheAvailable +import org.jetbrains.kotlin.gradle.utils.property import org.jetbrains.kotlin.gradle.utils.propertyWithNewInstance import java.io.File import java.util.concurrent.Callable @@ -56,6 +59,7 @@ abstract class KaptTask @Inject constructor( .matching { it.include("**/*.java") } .filter { f -> task.isRootAllowed(f) } ).disallowChanges() + task.verbose.set(queryKaptVerboseProperty(task.project)) } } @@ -166,6 +170,9 @@ abstract class KaptTask @Inject constructor( override val metrics: BuildMetricsReporter = BuildMetricsReporterImpl() + @get:Input + abstract val verbose: Property + private fun isRootAllowed(file: File): Boolean = file.exists() && !isAncestor(destinationDir, file) && @@ -332,4 +339,26 @@ abstract class KaptTask @Inject constructor( } return false } + + companion object { + const val KAPT_VERBOSE_OPTION_NAME = "kapt.verbose" + + internal fun queryKaptVerboseProperty( + project: Project + ): Provider { + return if (isConfigurationCacheAvailable(project.gradle)) { + project + .providers + .gradleProperty(KAPT_VERBOSE_OPTION_NAME) + .forUseAtConfigurationTime() + .map { it.toString().toBoolean() } + .orElse(false) + } else { + project.objects.property( + project.hasProperty(KAPT_VERBOSE_OPTION_NAME) && + project.property(KAPT_VERBOSE_OPTION_NAME).toString().toBoolean() + ) + } + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt index ed3f7bbd484..f508ff5e240 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithKotlincTask.kt @@ -75,8 +75,7 @@ abstract class KaptWithKotlincTask @Inject constructor( ) args.pluginOptions = (pluginOptionsWithKapt.arguments + args.pluginOptions!!).toTypedArray() - - args.verbose = project.hasProperty("kapt.verbose") && project.property("kapt.verbose").toString().toBoolean() == true + args.verbose = verbose.get() } /** diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt index 5b970a3fee9..e4728560cc8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/kapt/KaptWithoutKotlincTask.kt @@ -54,9 +54,6 @@ abstract class KaptWithoutKotlincTask @Inject constructor( @Suppress("unused") abstract val kaptJars: ConfigurableFileCollection - @get:Input - var isVerbose: Boolean = false - @get:Input var classLoadersCacheSize: Int = 0 @@ -119,7 +116,7 @@ abstract class KaptWithoutKotlincTask @Inject constructor( } val kaptFlagsForWorker = mutableSetOf().apply { - if (isVerbose) add("VERBOSE") + if (verbose.get()) add("VERBOSE") if (mapDiagnosticLocations) add("MAP_DIAGNOSTIC_LOCATIONS") if (includeCompileClasspath) add("INCLUDE_COMPILE_CLASSPATH") if (incrementalChanges is KaptIncrementalChanges.Known) add("INCREMENTAL_APT")