[Gradle] Declare build services usages for the Kotlin/JVM plugin

#KT-52149 In Progress
#KT-55174 Fixed
#KT-55741 Fixed
This commit is contained in:
Alexander.Likhachev
2023-01-12 11:41:28 +01:00
committed by Space Team
parent d360feb847
commit 02bf10f21a
4 changed files with 17 additions and 7 deletions
@@ -19,7 +19,6 @@ class BuildServiceDeclarationIT : KGPBaseTest() {
warningMode = WarningMode.All // we currently have other warnings when `STABLE_CONFIGURATION_CACHE` is enabled unrelated to build services declaration, so we check for this kind of warnings in the build output
)
@Disabled
@DisplayName("Build services are registered for Kotlin/JVM projects")
@GradleTest
@JvmGradlePluginTests
@@ -71,7 +70,6 @@ class BuildServiceDeclarationIT : KGPBaseTest() {
}
}
@Disabled
@DisplayName("Build services are registered for Kapt projects")
@GradleTest
@OtherGradlePluginTests
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.gradle.plugin
import org.gradle.api.Task
import org.gradle.api.invocation.Gradle
import org.gradle.api.provider.Provider
import org.gradle.api.services.BuildService
@@ -61,6 +62,10 @@ abstract class VariantImplementationFactories : BuildService<BuildServiceParamet
internal inline fun <reified T : VariantImplementationFactories.VariantImplementationFactory> Gradle.variantImplementationFactory(): T =
VariantImplementationFactories.get(this)[T::class]
internal fun Task.declareVariantImplementationFactoryUsage() {
usesService(VariantImplementationFactories.getProvider(project.gradle))
}
internal inline fun <
reified T : VariantImplementationFactories.VariantImplementationFactory
> Gradle.variantImplementationFactoryProvider(): Provider<T> =
@@ -232,6 +232,8 @@ abstract class GradleCompileTaskProvider @Inject constructor(
GradleCompilerRunner.buildModulesInfo(gradle)
}
)
}.also {
task.usesService(it)
}
}
)
@@ -379,7 +381,9 @@ abstract class AbstractKotlinCompile<T : CommonCompilerArguments> @Inject constr
}
)
private val systemPropertiesService = CompilerSystemPropertiesService.registerIfAbsent(project.gradle)
private val systemPropertiesService = CompilerSystemPropertiesService.registerIfAbsent(project.gradle).also {
usesService(it)
}
@get:Internal
internal abstract val preciseCompilationResultsBackup: Property<Boolean>
@@ -59,10 +59,12 @@ internal abstract class AbstractKotlinCompileConfig<TASK : AbstractKotlinCompile
.disallowChanges()
task.localStateDirectories.from(task.taskBuildLocalStateDirectory).disallowChanges()
BuildMetricsService.registerIfAbsent(project)?.also {
task.buildMetricsService.value(it)
BuildReportsService.registerIfAbsent(project, it)?.also {
task.buildReportsService.value(it)
BuildMetricsService.registerIfAbsent(project)?.also { metricsService ->
task.buildMetricsService.value(metricsService)
task.usesService(metricsService)
BuildReportsService.registerIfAbsent(project, metricsService)?.also { reportsService ->
task.buildReportsService.value(reportsService)
task.usesService(reportsService)
}
}
@@ -110,6 +112,7 @@ internal abstract class AbstractKotlinCompileConfig<TASK : AbstractKotlinCompile
compilation.internal.configurations.pluginConfiguration
)
}
task.declareVariantImplementationFactoryUsage()
task.moduleName.set(providers.provider { compilationInfo.moduleName })
@Suppress("DEPRECATION")
task.ownModuleName.set(project.provider { compilationInfo.moduleName })