[Gradle] Add Gradle 7.6+ variant
#KT-54634 In Progress
This commit is contained in:
committed by
Space Team
parent
900a3e59ff
commit
f839d5d4c2
@@ -49,6 +49,7 @@ enum class GradlePluginVariant(
|
|||||||
GRADLE_70("gradle70", "7.0", "7.0"),
|
GRADLE_70("gradle70", "7.0", "7.0"),
|
||||||
GRADLE_71("gradle71", "7.1", "7.1"),
|
GRADLE_71("gradle71", "7.1", "7.1"),
|
||||||
GRADLE_75("gradle75", "7.5", "7.5"),
|
GRADLE_75("gradle75", "7.5", "7.5"),
|
||||||
|
GRADLE_76("gradle76", "7.6", "7.6"),
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -80,4 +80,11 @@ if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
|||||||
commonSourceSet = commonSourceSet
|
commonSourceSet = commonSourceSet
|
||||||
)
|
)
|
||||||
publishShadowedJar(gradle75SourceSet, commonSourceSet)
|
publishShadowedJar(gradle75SourceSet, commonSourceSet)
|
||||||
|
|
||||||
|
// Used for Gradle 7.6+ versions
|
||||||
|
val gradle76SourceSet = createGradlePluginVariant(
|
||||||
|
GradlePluginVariant.GRADLE_76,
|
||||||
|
commonSourceSet = commonSourceSet
|
||||||
|
)
|
||||||
|
publishShadowedJar(gradle76SourceSet, commonSourceSet)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,13 @@ createGradlePluginVariant(
|
|||||||
isGradlePlugin = false
|
isGradlePlugin = false
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Used for Gradle 7.6+ versions
|
||||||
|
createGradlePluginVariant(
|
||||||
|
GradlePluginVariant.GRADLE_76,
|
||||||
|
commonSourceSet = commonSourceSet,
|
||||||
|
isGradlePlugin = false
|
||||||
|
)
|
||||||
|
|
||||||
publishing {
|
publishing {
|
||||||
publications {
|
publications {
|
||||||
register<MavenPublication>(DEFAULT_MAIN_PUBLICATION_NAME) {
|
register<MavenPublication>(DEFAULT_MAIN_PUBLICATION_NAME) {
|
||||||
|
|||||||
@@ -3477,6 +3477,12 @@
|
|||||||
<sha256 value="c26e4975c532bb9b350de81a943b8c6ed5696f991e1e10d40c11d513ba255558" origin="Generated by Gradle"/>
|
<sha256 value="c26e4975c532bb9b350de81a943b8c6ed5696f991e1e10d40c11d513ba255558" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="dev.gradleplugins" name="gradle-api" version="7.6">
|
||||||
|
<artifact name="gradle-api-7.6.jar">
|
||||||
|
<md5 value="55f5dd1808383279468e15bff26d9029" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="a2263280b9b9a7b9ce2c6a76905a2ad8948110d683e61429473b8e264858c474" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="google" name="android_m2repository" version="r44">
|
<component group="google" name="android_m2repository" version="r44">
|
||||||
<artifact name="android_m2repository-r44.zip">
|
<artifact name="android_m2repository-r44.zip">
|
||||||
<md5 value="7ba987b0caec8b0facfddd60851abb50" origin="Generated by Gradle"/>
|
<md5 value="7ba987b0caec8b0facfddd60851abb50" origin="Generated by Gradle"/>
|
||||||
@@ -6922,6 +6928,12 @@
|
|||||||
<sha256 value="dffefada8294865be5035515c0320fb679443d285f4a5f8adadcf00c1130e84c" origin="Generated by Gradle"/>
|
<sha256 value="dffefada8294865be5035515c0320fb679443d285f4a5f8adadcf00c1130e84c" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.codehaus.groovy" name="groovy" version="3.0.13">
|
||||||
|
<artifact name="groovy-3.0.13.jar">
|
||||||
|
<md5 value="101e0c903ea7120323d0545b21e49aae" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="044569c20b1438263470585627da1b2c9722f1fb8d89f94e78c0ff219abd0146" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.codehaus.groovy" name="groovy" version="3.0.7">
|
<component group="org.codehaus.groovy" name="groovy" version="3.0.7">
|
||||||
<artifact name="groovy-3.0.7.jar">
|
<artifact name="groovy-3.0.7.jar">
|
||||||
<md5 value="0035721b2c7c7a9a0e4fdf7ee3d615cc" origin="Generated by Gradle"/>
|
<md5 value="0035721b2c7c7a9a0e4fdf7ee3d615cc" origin="Generated by Gradle"/>
|
||||||
|
|||||||
+3
-2
@@ -215,14 +215,15 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
|
|||||||
|
|
||||||
@DisplayName("Proper Gradle plugin variant is used")
|
@DisplayName("Proper Gradle plugin variant is used")
|
||||||
@GradleTestVersions(
|
@GradleTestVersions(
|
||||||
additionalVersions = [TestVersions.Gradle.G_7_0, TestVersions.Gradle.G_7_1, TestVersions.Gradle.G_7_4],
|
additionalVersions = [TestVersions.Gradle.G_7_0, TestVersions.Gradle.G_7_1, TestVersions.Gradle.G_7_4, TestVersions.Gradle.G_7_5],
|
||||||
maxVersion = TestVersions.Gradle.G_7_5
|
maxVersion = TestVersions.Gradle.G_7_6
|
||||||
)
|
)
|
||||||
@GradleTest
|
@GradleTest
|
||||||
internal fun pluginVariantIsUsed(gradleVersion: GradleVersion) {
|
internal fun pluginVariantIsUsed(gradleVersion: GradleVersion) {
|
||||||
project("kotlinProject", gradleVersion) {
|
project("kotlinProject", gradleVersion) {
|
||||||
build("tasks") {
|
build("tasks") {
|
||||||
val expectedVariant = when (gradleVersion) {
|
val expectedVariant = when (gradleVersion) {
|
||||||
|
GradleVersion.version(TestVersions.Gradle.G_7_6) -> "gradle76"
|
||||||
GradleVersion.version(TestVersions.Gradle.G_7_5) -> "gradle75"
|
GradleVersion.version(TestVersions.Gradle.G_7_5) -> "gradle75"
|
||||||
in GradleVersion.version(TestVersions.Gradle.G_7_1)..GradleVersion.version(TestVersions.Gradle.G_7_4) -> "gradle71"
|
in GradleVersion.version(TestVersions.Gradle.G_7_1)..GradleVersion.version(TestVersions.Gradle.G_7_4) -> "gradle71"
|
||||||
GradleVersion.version(TestVersions.Gradle.G_7_0) -> "gradle70"
|
GradleVersion.version(TestVersions.Gradle.G_7_0) -> "gradle70"
|
||||||
|
|||||||
+2
-1
@@ -18,7 +18,8 @@ interface TestVersions {
|
|||||||
const val G_7_2 = "7.2"
|
const val G_7_2 = "7.2"
|
||||||
const val G_7_3 = "7.3.3"
|
const val G_7_3 = "7.3.3"
|
||||||
const val G_7_4 = "7.4.2"
|
const val G_7_4 = "7.4.2"
|
||||||
const val G_7_5 = "7.5"
|
const val G_7_5 = "7.5.1"
|
||||||
|
const val G_7_6 = "7.6"
|
||||||
// https://gradle.org/nightly/
|
// https://gradle.org/nightly/
|
||||||
// Retention policy is 3 months
|
// Retention policy is 3 months
|
||||||
const val G_8_0 = "8.0-20221126231700+0000"
|
const val G_8_0 = "8.0-20221126231700+0000"
|
||||||
|
|||||||
+143
@@ -0,0 +1,143 @@
|
|||||||
|
/*
|
||||||
|
* 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 javax.inject.Inject
|
||||||
|
|
||||||
|
private const val PLUGIN_VARIANT_NAME = "gradle76"
|
||||||
|
|
||||||
|
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>()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("UnusedReceiverParameter")
|
||||||
|
private fun Project.registerVariantImplementations() {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user