Make 'kapt.verbose' property compatible with configuration cache.
^KT-46651 In Progress
This commit is contained in:
-1
@@ -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()
|
||||
|
||||
+3
-2
@@ -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<Boolean>
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
+29
@@ -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<Boolean>
|
||||
|
||||
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<Boolean> {
|
||||
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()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -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()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-4
@@ -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<String>().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")
|
||||
|
||||
Reference in New Issue
Block a user