Add KotlinApiPlugin in Gradle plugin variants

This plugin should apply specific implementations for variant Gradle
version including project isolation one.

^KT-55624 Fixed
This commit is contained in:
Yahor Berdnikau
2023-04-18 13:31:26 +02:00
committed by Space Team
parent cc1aaf4ba8
commit b3decace6b
10 changed files with 61 additions and 8 deletions
@@ -34,8 +34,8 @@ class KotlinJvmApiTest : KGPBaseTest() {
buildGradle.modify {
it.replace("id 'org.jetbrains.kotlin.jvm'", "id 'org.jetbrains.kotlin.jvm' apply false") +
"""
import org.jetbrains.kotlin.gradle.plugin.KotlinBaseApiPlugin
KotlinBaseApiPlugin apiPlugin = plugins.apply(KotlinBaseApiPlugin.class)
import org.jetbrains.kotlin.gradle.plugin.KotlinApiPlugin
KotlinApiPlugin apiPlugin = plugins.apply(KotlinApiPlugin.class)
apiPlugin.registerKotlinJvmCompileTask("foo").configure {
it.source("src/main")
@@ -79,8 +79,8 @@ class KotlinJvmApiTest : KGPBaseTest() {
buildGradle.modify {
it.replace("id 'org.jetbrains.kotlin.jvm'", "id 'org.jetbrains.kotlin.jvm' apply false") +
"""
import org.jetbrains.kotlin.gradle.plugin.KotlinBaseApiPlugin
KotlinBaseApiPlugin apiPlugin = plugins.apply(KotlinBaseApiPlugin.class)
import org.jetbrains.kotlin.gradle.plugin.KotlinApiPlugin
KotlinApiPlugin apiPlugin = plugins.apply(KotlinApiPlugin.class)
File kaptFakeJar = new File(project.projectDir, "kapt.jar")
kaptFakeJar.createNewFile()
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.unitTests
import org.gradle.api.internal.project.ProjectInternal
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
import org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask
import org.jetbrains.kotlin.gradle.plugin.KotlinBaseApiPlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinApiPlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinJvmFactory
import org.jetbrains.kotlin.gradle.tasks.Kapt
import org.jetbrains.kotlin.gradle.util.buildProject
@@ -34,7 +34,7 @@ class KaptApiTest {
@Before
fun setUpProject() {
project = buildProject {}
plugin = project.plugins.apply(KotlinBaseApiPlugin::class.java)
plugin = project.plugins.apply(KotlinApiPlugin::class.java)
project.configurations.create(Kapt3GradleSubplugin.KAPT_WORKER_DEPENDENCIES_CONFIGURATION_NAME)
}
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.unitTests
import org.gradle.api.internal.project.ProjectInternal
import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode
import org.jetbrains.kotlin.gradle.plugin.KotlinBaseApiPlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinApiPlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinJvmFactory
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
@@ -36,7 +36,7 @@ class KotlinCompileApiTest {
@Before
fun setUpProject() {
project = buildProject {}
plugin = project.plugins.apply(KotlinBaseApiPlugin::class.java)
plugin = project.plugins.apply(KotlinApiPlugin::class.java)
plugin.registerKotlinJvmCompileTask(TASK_NAME).configure { task ->
taskApi = task
}
@@ -135,6 +135,14 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[JavaSourceSetsAccessor.JavaSourceSetsAccessorVariantFactory::class] =
@@ -140,6 +140,14 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[IdeaSyncDetector.IdeaSyncDetectorVariantFactory::class] =
@@ -138,6 +138,13 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[MppTestReportHelper.MppTestReportHelperVariantFactory::class] =
@@ -141,6 +141,13 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[MppTestReportHelper.MppTestReportHelperVariantFactory::class] =
@@ -139,6 +139,14 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[ProjectIsolationStartParameterAccessor.Factory::class] =
@@ -137,6 +137,13 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
@Suppress("UnusedReceiverParameter")
private fun Project.registerVariantImplementations() {
@@ -139,6 +139,14 @@ open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
}
}
open class KotlinApiPlugin : KotlinBaseApiPlugin() {
override fun apply(project: Project) {
project.registerVariantImplementations()
super.apply(project)
}
}
private fun Project.registerVariantImplementations() {
val factories = VariantImplementationFactoriesConfigurator.get(gradle)
factories[MavenPluginConfigurator.MavenPluginConfiguratorVariantFactory::class] =