[Gradle] Add Gradle 7.4 variant
#KT-52490 In Progress
This commit is contained in:
committed by
Space Team
parent
4a7e3c7596
commit
b5482b3812
+3
-2
@@ -216,7 +216,7 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
|
||||
|
||||
@DisplayName("Proper Gradle plugin variant is used")
|
||||
@GradleTestVersions(
|
||||
additionalVersions = [TestVersions.Gradle.G_7_0, TestVersions.Gradle.G_7_1, TestVersions.Gradle.G_7_4, TestVersions.Gradle.G_7_5],
|
||||
additionalVersions = [TestVersions.Gradle.G_7_0, TestVersions.Gradle.G_7_1, TestVersions.Gradle.G_7_3, TestVersions.Gradle.G_7_4, TestVersions.Gradle.G_7_5],
|
||||
maxVersion = TestVersions.Gradle.G_7_6
|
||||
)
|
||||
@GradleTest
|
||||
@@ -226,7 +226,8 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
|
||||
val expectedVariant = when (gradleVersion) {
|
||||
GradleVersion.version(TestVersions.Gradle.G_7_6) -> "gradle76"
|
||||
GradleVersion.version(TestVersions.Gradle.G_7_5) -> "gradle75"
|
||||
in GradleVersion.version(TestVersions.Gradle.G_7_1)..GradleVersion.version(TestVersions.Gradle.G_7_4) -> "gradle71"
|
||||
GradleVersion.version(TestVersions.Gradle.G_7_4) -> "gradle74"
|
||||
in GradleVersion.version(TestVersions.Gradle.G_7_1)..GradleVersion.version(TestVersions.Gradle.G_7_3) -> "gradle71"
|
||||
GradleVersion.version(TestVersions.Gradle.G_7_0) -> "gradle70"
|
||||
else -> "main"
|
||||
}
|
||||
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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
|
||||
|
||||
import com.android.build.gradle.BaseExtension
|
||||
import org.gradle.api.Named
|
||||
import org.gradle.api.NamedDomainObjectContainer
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.file.SourceDirectorySet
|
||||
import org.gradle.api.model.ObjectFactory
|
||||
import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
|
||||
import org.jetbrains.kotlin.gradle.plugin.internal.*
|
||||
import javax.inject.Inject
|
||||
|
||||
private const val PLUGIN_VARIANT_NAME = "gradle74"
|
||||
|
||||
open class KotlinPluginWrapper @Inject constructor(
|
||||
registry: ToolingModelBuilderRegistry
|
||||
) : AbstractKotlinPluginWrapper(registry) {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinCommonPluginWrapper @Inject constructor(
|
||||
registry: ToolingModelBuilderRegistry
|
||||
) : AbstractKotlinCommonPluginWrapper(registry) {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinAndroidPluginWrapper @Inject constructor(
|
||||
registry: ToolingModelBuilderRegistry
|
||||
) : AbstractKotlinAndroidPluginWrapper(registry) {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
open class Kotlin2JsPluginWrapper @Inject constructor(
|
||||
registry: ToolingModelBuilderRegistry
|
||||
) : AbstractKotlin2JsPluginWrapper(registry) {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinMultiplatformPluginWrapper : AbstractKotlinMultiplatformPluginWrapper() {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinJsPluginWrapper : AbstractKotlinJsPluginWrapper() {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinPm20PluginWrapper @Inject constructor(
|
||||
objectFactory: ObjectFactory
|
||||
) : AbstractKotlinPm20PluginWrapper(objectFactory) {
|
||||
|
||||
override val pluginVariant: String = PLUGIN_VARIANT_NAME
|
||||
|
||||
override fun apply(project: Project) {
|
||||
project.registerVariantImplementations()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinPlatformJvmPlugin : KotlinPlatformImplementationPluginBase("jvm") {
|
||||
override fun apply(project: Project) {
|
||||
project.applyPlugin<KotlinPluginWrapper>()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinPlatformJsPlugin : KotlinPlatformImplementationPluginBase("js") {
|
||||
override fun apply(project: Project) {
|
||||
@Suppress("DEPRECATION_ERROR")
|
||||
project.applyPlugin<Kotlin2JsPluginWrapper>()
|
||||
super.apply(project)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinPlatformAndroidPlugin : KotlinPlatformImplementationPluginBase("android") {
|
||||
override fun apply(project: Project) {
|
||||
project.applyPlugin<KotlinAndroidPluginWrapper>()
|
||||
super.apply(project)
|
||||
}
|
||||
|
||||
override fun namedSourceSetsContainer(project: Project): NamedDomainObjectContainer<*> =
|
||||
(project.extensions.getByName("android") as BaseExtension).sourceSets
|
||||
|
||||
override fun addCommonSourceSetToPlatformSourceSet(commonSourceSet: Named, platformProject: Project) {
|
||||
val androidExtension = platformProject.extensions.getByName("android") as BaseExtension
|
||||
val androidSourceSet = androidExtension.sourceSets.findByName(commonSourceSet.name) ?: return
|
||||
val kotlinSourceSet = androidSourceSet.getExtension<SourceDirectorySet>(KOTLIN_DSL_NAME)
|
||||
?: return
|
||||
kotlinSourceSet.source(getKotlinSourceDirectorySetSafe(commonSourceSet)!!)
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
|
||||
override fun apply(project: Project) {
|
||||
warnAboutKotlin12xMppDeprecation(project)
|
||||
project.applyPlugin<KotlinCommonPluginWrapper>()
|
||||
}
|
||||
}
|
||||
|
||||
private fun Project.registerVariantImplementations() {
|
||||
val factories = VariantImplementationFactories.get(gradle)
|
||||
factories[MppTestReportHelper.MppTestReportHelperVariantFactory::class] =
|
||||
MppTestReportHelperG74.MppTestReportHelperVariantFactoryG74()
|
||||
}
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.tasks.testing.TestDescriptorInternal
|
||||
import org.gradle.api.internal.tasks.testing.TestResultProcessor
|
||||
import org.gradle.api.internal.tasks.testing.TestStartEvent
|
||||
import org.jetbrains.kotlin.gradle.testing.KotlinTestFailure
|
||||
|
||||
internal class MppTestReportHelperG74 : MppTestReportHelper {
|
||||
internal class MppTestReportHelperVariantFactoryG74 :
|
||||
MppTestReportHelper.MppTestReportHelperVariantFactory {
|
||||
override fun getInstance(): MppTestReportHelper = MppTestReportHelperG74()
|
||||
}
|
||||
|
||||
override fun reportFailure(
|
||||
results: TestResultProcessor,
|
||||
id: Any,
|
||||
failure: KotlinTestFailure,
|
||||
isAssertionFailure: Boolean,
|
||||
) {
|
||||
results.failure(
|
||||
id,
|
||||
failure,
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("DuplicatedCode") // the delegating processor implements different interfaces with the same code
|
||||
override fun createDelegatingTestReportProcessor(origin: TestResultProcessor, targetName: String) =
|
||||
object : TestResultProcessor by origin {
|
||||
override fun started(test: TestDescriptorInternal, event: TestStartEvent) {
|
||||
val myTest = object : TestDescriptorInternal by test {
|
||||
override fun getDisplayName(): String = "${test.displayName}[$targetName]"
|
||||
override fun getClassName(): String? = test.className?.replace('$', '.')
|
||||
override fun getClassDisplayName(): String? = test.classDisplayName?.replace('$', '.')
|
||||
}
|
||||
origin.started(myTest, event)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user