[Gradle] Introduce ConfigurationCacheStartParameterAccessor
#KT-61457 In Progress
This commit is contained in:
committed by
Space Team
parent
6ce096f0ed
commit
51fe1fd3cc
+5
@@ -194,6 +194,11 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
|
||||
UnameExecutor.UnameExecutorVariantFactory::class,
|
||||
DefaultUnameExecutorVariantFactory()
|
||||
)
|
||||
|
||||
factories.putIfAbsent(
|
||||
ConfigurationCacheStartParameterAccessor.Factory::class,
|
||||
DefaultConfigurationCacheStartParameterAccessorVariantFactory()
|
||||
)
|
||||
}
|
||||
|
||||
protected fun setupAttributeMatchingStrategy(
|
||||
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.invocation.Gradle
|
||||
import org.jetbrains.kotlin.gradle.plugin.VariantImplementationFactories
|
||||
import org.jetbrains.kotlin.gradle.plugin.variantImplementationFactory
|
||||
|
||||
/**
|
||||
* KGP was using `StartParametersInternal.isConfigurationCache` to find out whether the build requests configuration cache.
|
||||
* That property became deprecated since Gradle 7.1 and is scheduled to be removed soon.
|
||||
* As a replacement, Gradle provides [org.gradle.StartParameter.isConfigurationCacheRequested] since Gradle 7.6
|
||||
*/
|
||||
internal interface ConfigurationCacheStartParameterAccessor {
|
||||
val isConfigurationCacheRequested: Boolean
|
||||
|
||||
interface Factory : VariantImplementationFactories.VariantImplementationFactory {
|
||||
fun getInstance(gradle: Gradle): ConfigurationCacheStartParameterAccessor
|
||||
}
|
||||
}
|
||||
|
||||
internal class DefaultConfigurationCacheStartParameterAccessorVariantFactory :
|
||||
ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = DefaultConfigurationCacheStartParameterAccessor(gradle)
|
||||
}
|
||||
|
||||
internal class DefaultConfigurationCacheStartParameterAccessor(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
override val isConfigurationCacheRequested: Boolean by lazy {
|
||||
gradle.startParameter.isConfigurationCacheRequested
|
||||
}
|
||||
}
|
||||
|
||||
internal val Project.isConfigurationCacheRequested
|
||||
get() = variantImplementationFactory<ConfigurationCacheStartParameterAccessor.Factory>()
|
||||
.getInstance(gradle)
|
||||
.isConfigurationCacheRequested
|
||||
+1
@@ -166,4 +166,5 @@ private fun Project.registerVariantImplementations() {
|
||||
CompatibilityConventionRegistrarG70.Factory()
|
||||
factories[UnameExecutor.UnameExecutorVariantFactory::class] =
|
||||
UnameExecutorG70.UnameExecutorVariantFactoryG70()
|
||||
factories[ConfigurationCacheStartParameterAccessor.Factory::class] = ConfigurationCacheStartParameterAccessorG70.Factory()
|
||||
}
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.internal.StartParameterInternal
|
||||
import org.gradle.api.invocation.Gradle
|
||||
|
||||
internal class ConfigurationCacheStartParameterAccessorG70(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
override val isConfigurationCacheRequested by lazy {
|
||||
(gradle.startParameter as StartParameterInternal).isConfigurationCache
|
||||
}
|
||||
|
||||
internal class Factory : ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = ConfigurationCacheStartParameterAccessorG70(gradle)
|
||||
}
|
||||
}
|
||||
+1
@@ -167,4 +167,5 @@ private fun Project.registerVariantImplementations() {
|
||||
CompatibilityConventionRegistrarG71.Factory()
|
||||
factories[UnameExecutor.UnameExecutorVariantFactory::class] =
|
||||
UnameExecutorG71.UnameExecutorVariantFactoryG71()
|
||||
factories[ConfigurationCacheStartParameterAccessor.Factory::class] = ConfigurationCacheStartParameterAccessorG71.Factory()
|
||||
}
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.internal.StartParameterInternal
|
||||
import org.gradle.api.invocation.Gradle
|
||||
|
||||
internal class ConfigurationCacheStartParameterAccessorG71(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
@Suppress("DEPRECATION")
|
||||
override val isConfigurationCacheRequested by lazy {
|
||||
(gradle.startParameter as StartParameterInternal).isConfigurationCache
|
||||
}
|
||||
|
||||
internal class Factory : ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = ConfigurationCacheStartParameterAccessorG71(gradle)
|
||||
}
|
||||
}
|
||||
+1
@@ -156,4 +156,5 @@ private fun Project.registerVariantImplementations() {
|
||||
CompatibilityConventionRegistrarG74.Factory()
|
||||
factories[UnameExecutor.UnameExecutorVariantFactory::class] =
|
||||
UnameExecutorG74.UnameExecutorVariantFactoryG74()
|
||||
factories[ConfigurationCacheStartParameterAccessor.Factory::class] = ConfigurationCacheStartParameterAccessorG74.Factory()
|
||||
}
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.internal.StartParameterInternal
|
||||
import org.gradle.api.invocation.Gradle
|
||||
|
||||
internal class ConfigurationCacheStartParameterAccessorG74(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
@Suppress("DEPRECATION")
|
||||
override val isConfigurationCacheRequested by lazy {
|
||||
(gradle.startParameter as StartParameterInternal).isConfigurationCache
|
||||
}
|
||||
|
||||
internal class Factory : ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = ConfigurationCacheStartParameterAccessorG74(gradle)
|
||||
}
|
||||
}
|
||||
+1
@@ -153,4 +153,5 @@ private fun Project.registerVariantImplementations() {
|
||||
ProjectIsolationStartParameterAccessorG75.Factory()
|
||||
factories[CompatibilityConventionRegistrar.Factory::class] =
|
||||
CompatibilityConventionRegistrarG75.Factory()
|
||||
factories[ConfigurationCacheStartParameterAccessor.Factory::class] = ConfigurationCacheStartParameterAccessorG75.Factory()
|
||||
}
|
||||
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.internal.StartParameterInternal
|
||||
import org.gradle.api.invocation.Gradle
|
||||
|
||||
internal class ConfigurationCacheStartParameterAccessorG75(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
@Suppress("DEPRECATION")
|
||||
override val isConfigurationCacheRequested by lazy {
|
||||
(gradle.startParameter as StartParameterInternal).isConfigurationCache
|
||||
}
|
||||
|
||||
internal class Factory : ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = ConfigurationCacheStartParameterAccessorG75(gradle)
|
||||
}
|
||||
}
|
||||
+1
@@ -172,4 +172,5 @@ private fun Project.registerVariantImplementations() {
|
||||
CompatibilityConventionRegistrarG6.Factory()
|
||||
factories[UnameExecutor.UnameExecutorVariantFactory::class] =
|
||||
UnameExecutorG6.UnameExecutorVariantFactoryG6()
|
||||
factories[ConfigurationCacheStartParameterAccessor.Factory::class] = ConfigurationCacheStartParameterAccessorG6.Factory()
|
||||
}
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.gradle.plugin.internal
|
||||
|
||||
import org.gradle.api.internal.StartParameterInternal
|
||||
import org.gradle.api.invocation.Gradle
|
||||
|
||||
internal class ConfigurationCacheStartParameterAccessorG6(
|
||||
private val gradle: Gradle,
|
||||
) : ConfigurationCacheStartParameterAccessor {
|
||||
override val isConfigurationCacheRequested by lazy {
|
||||
(gradle.startParameter as StartParameterInternal).isConfigurationCache
|
||||
}
|
||||
|
||||
internal class Factory : ConfigurationCacheStartParameterAccessor.Factory {
|
||||
override fun getInstance(gradle: Gradle) = ConfigurationCacheStartParameterAccessorG6(gradle)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user