[Gradle] Move default variant implementations registration upwards

Now default variant implementations are being registered in DefaultKotlinBasePlugin, allowing to test KGP api without dealing with variant factories
This commit is contained in:
Alexander Likhachev
2022-09-20 16:43:01 +02:00
committed by Space
parent 749d9f51d1
commit 45b608e195
@@ -83,6 +83,8 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
addKotlinCompilerConfiguration(project)
project.registerDefaultVariantImplementations()
project.configurations.maybeCreate(PLUGIN_CLASSPATH_CONFIGURATION_NAME).apply {
isVisible = false
isCanBeConsumed = false
@@ -119,6 +121,34 @@ abstract class DefaultKotlinBasePlugin : KotlinBasePlugin {
}
}
private fun Project.registerDefaultVariantImplementations() {
val factories = VariantImplementationFactories.get(project.gradle)
factories.putIfAbsent(
MavenPluginConfigurator.MavenPluginConfiguratorVariantFactory::class,
MavenPluginConfigurator.DefaultMavenPluginConfiguratorVariantFactory()
)
factories.putIfAbsent(
JavaSourceSetsAccessor.JavaSourceSetsAccessorVariantFactory::class,
DefaultJavaSourceSetsAccessorVariantFactory()
)
factories.putIfAbsent(
BasePluginConfiguration.BasePluginConfigurationVariantFactory::class,
DefaultBasePluginConfigurationVariantFactory()
)
factories.putIfAbsent(
IdeaSyncDetector.IdeaSyncDetectorVariantFactory::class,
DefaultIdeaSyncDetectorVariantFactory()
)
factories.putIfAbsent(
ConfigurationTimePropertiesAccessor.ConfigurationTimePropertiesAccessorVariantFactory::class,
DefaultConfigurationTimePropertiesAccessorVariantFactory()
)
}
protected fun setupAttributeMatchingStrategy(
project: Project,
isKotlinGranularMetadata: Boolean = project.isKotlinGranularMetadataEnabled
@@ -160,8 +190,6 @@ abstract class KotlinBasePluginWrapper : DefaultKotlinBasePlugin() {
}
project.maybeCreateCommonizerClasspathConfiguration()
project.registerDefaultVariantImplementations()
project.createKotlinExtension(projectExtensionClass).apply {
coreLibrariesVersion = kotlinPluginVersion
@@ -187,34 +215,6 @@ abstract class KotlinBasePluginWrapper : DefaultKotlinBasePlugin() {
project.registerBuildKotlinToolingMetadataTask()
}
private fun Project.registerDefaultVariantImplementations() {
val factories = VariantImplementationFactories.get(project.gradle)
factories.putIfAbsent(
MavenPluginConfigurator.MavenPluginConfiguratorVariantFactory::class,
MavenPluginConfigurator.DefaultMavenPluginConfiguratorVariantFactory()
)
factories.putIfAbsent(
JavaSourceSetsAccessor.JavaSourceSetsAccessorVariantFactory::class,
DefaultJavaSourceSetsAccessorVariantFactory()
)
factories.putIfAbsent(
BasePluginConfiguration.BasePluginConfigurationVariantFactory::class,
DefaultBasePluginConfigurationVariantFactory()
)
factories.putIfAbsent(
IdeaSyncDetector.IdeaSyncDetectorVariantFactory::class,
DefaultIdeaSyncDetectorVariantFactory()
)
factories.putIfAbsent(
ConfigurationTimePropertiesAccessor.ConfigurationTimePropertiesAccessorVariantFactory::class,
DefaultConfigurationTimePropertiesAccessorVariantFactory()
)
}
internal open fun createTestRegistry(project: Project) = KotlinTestsRegistry(project)
internal abstract fun getPlugin(