KGP: Clean up configurations setup
KAPT classpath now uses extendsFrom in order to resolve all configurations as a single graph. Also, use Configuration.extendsFrom instead of DependencyHandler.add that is being deprecated in Gradle 6.7.
This commit is contained in:
committed by
nataliya.valtman
parent
519aeeb644
commit
33a0ec9b4f
+7
-1
@@ -450,7 +450,13 @@ class Kapt3GradleSubplugin @Inject internal constructor(private val registry: To
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
kaptTask.kaptClasspathConfigurations = kaptClasspathConfigurations
|
val kaptClasspathConfiguration =
|
||||||
|
project.configurations.create("_kaptClasspath_" + kaptTask.name).setExtendsFrom(kaptClasspathConfigurations).also {
|
||||||
|
it.isVisible = false
|
||||||
|
it.isCanBeConsumed = false
|
||||||
|
}
|
||||||
|
kaptTask.kaptClasspath.from(kaptClasspathConfiguration)
|
||||||
|
kaptTask.kaptClasspathConfigurationNames.set(kaptClasspathConfigurations.map { it.name })
|
||||||
|
|
||||||
KaptWithAndroid.androidVariantData(this)?.annotationProcessorOptionProviders?.let {
|
KaptWithAndroid.androidVariantData(this)?.annotationProcessorOptionProviders?.let {
|
||||||
kaptTask.annotationProcessorOptionProviders.add(it)
|
kaptTask.annotationProcessorOptionProviders.add(it)
|
||||||
|
|||||||
+5
-5
@@ -1,8 +1,9 @@
|
|||||||
package org.jetbrains.kotlin.gradle.internal
|
package org.jetbrains.kotlin.gradle.internal
|
||||||
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.file.ConfigurableFileCollection
|
||||||
import org.gradle.api.file.FileCollection
|
import org.gradle.api.file.FileCollection
|
||||||
import org.gradle.api.internal.ConventionTask
|
import org.gradle.api.internal.ConventionTask
|
||||||
|
import org.gradle.api.provider.ListProperty
|
||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
import org.gradle.api.tasks.incremental.IncrementalTaskInputs
|
||||||
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
||||||
@@ -43,8 +44,7 @@ abstract class KaptTask : ConventionTask(), TaskWithLocalState {
|
|||||||
|
|
||||||
@get:Classpath
|
@get:Classpath
|
||||||
@get:InputFiles
|
@get:InputFiles
|
||||||
val kaptClasspath: FileCollection
|
abstract val kaptClasspath: ConfigurableFileCollection
|
||||||
get() = objects.fileCollection().from(kaptClasspathConfigurations)
|
|
||||||
|
|
||||||
@get:Classpath
|
@get:Classpath
|
||||||
@get:InputFiles
|
@get:InputFiles
|
||||||
@@ -53,7 +53,7 @@ abstract class KaptTask : ConventionTask(), TaskWithLocalState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@get:Internal
|
@get:Internal
|
||||||
internal lateinit var kaptClasspathConfigurations: List<Configuration>
|
internal abstract val kaptClasspathConfigurationNames: ListProperty<String>
|
||||||
|
|
||||||
|
|
||||||
@get:PathSensitive(PathSensitivity.NONE)
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
@@ -195,7 +195,7 @@ abstract class KaptTask : ConventionTask(), TaskWithLocalState {
|
|||||||
+ "\nThe following files, containing annotation processors, are not present in KAPT classpath:\n"
|
+ "\nThe following files, containing annotation processors, are not present in KAPT classpath:\n"
|
||||||
+ processorsAbsentInKaptClasspath.joinToString("\n") { " '$it'" }
|
+ processorsAbsentInKaptClasspath.joinToString("\n") { " '$it'" }
|
||||||
+ "\nAdd corresponding dependencies to any of the following configurations:\n"
|
+ "\nAdd corresponding dependencies to any of the following configurations:\n"
|
||||||
+ kaptClasspathConfigurations.joinToString("\n") { " '${it.name}'" }
|
+ kaptClasspathConfigurationNames.get().joinToString("\n") { " '$it'" }
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.gradle.utils.optionalProvider
|
|||||||
import org.jetbrains.kotlin.gradle.utils.toSortedPathsArray
|
import org.jetbrains.kotlin.gradle.utils.toSortedPathsArray
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
open class KaptWithKotlincTask : KaptTask(), CompilerArgumentAwareWithInput<K2JVMCompilerArguments> {
|
abstract class KaptWithKotlincTask : KaptTask(), CompilerArgumentAwareWithInput<K2JVMCompilerArguments> {
|
||||||
@get:Internal
|
@get:Internal
|
||||||
internal val pluginOptions = CompilerPluginOptions()
|
internal val pluginOptions = CompilerPluginOptions()
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ import java.net.URL
|
|||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class KaptWithoutKotlincTask @Inject constructor(private val workerExecutor: WorkerExecutor) : KaptTask() {
|
abstract class KaptWithoutKotlincTask @Inject constructor(private val workerExecutor: WorkerExecutor) : KaptTask() {
|
||||||
@get:InputFiles
|
@get:InputFiles
|
||||||
@get:Classpath
|
@get:Classpath
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
|
|||||||
+8
-5
@@ -6,11 +6,14 @@
|
|||||||
package org.jetbrains.kotlin.gradle.utils
|
package org.jetbrains.kotlin.gradle.utils
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import java.lang.RuntimeException
|
||||||
|
|
||||||
fun Project.addExtendsFromRelation(extendingConfigurationName: String, extendsFromConfigurationName: String, forced: Boolean = true) {
|
fun Project.addExtendsFromRelation(extendingConfigurationName: String, extendsFromConfigurationName: String, forced: Boolean = true) {
|
||||||
if (extendingConfigurationName != extendsFromConfigurationName) {
|
if (extendingConfigurationName == extendsFromConfigurationName) return
|
||||||
if (forced || configurations.findByName(extendingConfigurationName) != null) {
|
|
||||||
project.dependencies.add(extendingConfigurationName, project.configurations.getByName(extendsFromConfigurationName))
|
val extending = configurations.findByName(extendingConfigurationName)
|
||||||
}
|
?: if (forced) throw RuntimeException("Configuration $extendingConfigurationName does not exist.")
|
||||||
}
|
else return
|
||||||
|
|
||||||
|
extending.extendsFrom(configurations.getByName(extendsFromConfigurationName))
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user