[Gradle] Add Gradle 7.5+ variant
This commit is contained in:
committed by
Space
parent
3021008b5f
commit
b5491177c9
@@ -49,6 +49,7 @@ enum class GradlePluginVariant(
|
||||
GRADLE_MIN("main", "6.7", "6.9"),
|
||||
GRADLE_70("gradle70", "7.0", "7.0"),
|
||||
GRADLE_71("gradle71", "7.1", "7.1"),
|
||||
GRADLE_75("gradle75", "7.5", "7.5"),
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,4 +73,11 @@ if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
||||
commonSourceSet = commonSourceSet
|
||||
)
|
||||
publishShadowedJar(gradle71SourceSet, commonSourceSet)
|
||||
|
||||
// Used for Gradle 7.5+ versions
|
||||
val gradle75SourceSet = createGradlePluginVariant(
|
||||
GradlePluginVariant.GRADLE_75,
|
||||
commonSourceSet = commonSourceSet
|
||||
)
|
||||
publishShadowedJar(gradle75SourceSet, commonSourceSet)
|
||||
}
|
||||
|
||||
@@ -34,6 +34,13 @@ createGradlePluginVariant(
|
||||
isGradlePlugin = false
|
||||
)
|
||||
|
||||
// Used for Gradle 7.5+ versions
|
||||
createGradlePluginVariant(
|
||||
GradlePluginVariant.GRADLE_75,
|
||||
commonSourceSet = commonSourceSet,
|
||||
isGradlePlugin = false
|
||||
)
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
register<MavenPublication>(DEFAULT_MAIN_PUBLICATION_NAME) {
|
||||
|
||||
@@ -3432,6 +3432,12 @@
|
||||
<sha256 value="0b3e8478a8ed6bdb226941b313c1a06d50ef9d389d30cc82d7bc5985d94ed00f" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="dev.gradleplugins" name="gradle-api" version="7.5">
|
||||
<artifact name="gradle-api-7.5.jar">
|
||||
<md5 value="082f28c41dc57b8c6d7f8b633a401f48" origin="Generated by Gradle"/>
|
||||
<sha256 value="c26e4975c532bb9b350de81a943b8c6ed5696f991e1e10d40c11d513ba255558" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="google" name="android_m2repository" version="r44">
|
||||
<artifact name="android_m2repository-r44.zip">
|
||||
<md5 value="7ba987b0caec8b0facfddd60851abb50" origin="Generated by Gradle"/>
|
||||
@@ -6787,6 +6793,12 @@
|
||||
<sha256 value="a388c9770b8500d27881a867a02f1b117f749e5d7593817876dd0aac24b0dd86" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.groovy" name="groovy" version="3.0.10">
|
||||
<artifact name="groovy-3.0.10.jar">
|
||||
<md5 value="1125469744b5b7b9f404832279633442" origin="Generated by Gradle"/>
|
||||
<sha256 value="dffefada8294865be5035515c0320fb679443d285f4a5f8adadcf00c1130e84c" origin="Generated by Gradle"/>
|
||||
</artifact>
|
||||
</component>
|
||||
<component group="org.codehaus.groovy" name="groovy" version="3.0.7">
|
||||
<artifact name="groovy-3.0.7.jar">
|
||||
<md5 value="0035721b2c7c7a9a0e4fdf7ee3d615cc" origin="Generated by Gradle"/>
|
||||
|
||||
+4
-3
@@ -212,15 +212,16 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
|
||||
|
||||
@DisplayName("Proper Gradle plugin variant is used")
|
||||
@GradleTestVersions(
|
||||
additionalVersions = [TestVersions.Gradle.G_7_0],
|
||||
maxVersion = TestVersions.Gradle.G_7_1
|
||||
additionalVersions = [TestVersions.Gradle.G_7_0, TestVersions.Gradle.G_7_1, TestVersions.Gradle.G_7_4],
|
||||
maxVersion = TestVersions.Gradle.G_7_5
|
||||
)
|
||||
@GradleTest
|
||||
internal fun pluginVariantIsUsed(gradleVersion: GradleVersion) {
|
||||
project("kotlinProject", gradleVersion) {
|
||||
build("tasks") {
|
||||
val expectedVariant = when (gradleVersion) {
|
||||
GradleVersion.version(TestVersions.Gradle.G_7_1) -> "gradle71"
|
||||
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_0) -> "gradle70"
|
||||
else -> "main"
|
||||
}
|
||||
|
||||
+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 = "gradle75"
|
||||
|
||||
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() {
|
||||
|
||||
}
|
||||
+1
-1
@@ -19,7 +19,7 @@ internal class JavaSourceSetsAccessorG6(
|
||||
override val sourceSetsIfAvailable: SourceSetContainer?
|
||||
get() = convention.findPlugin(JavaPluginConvention::class.java)?.sourceSets
|
||||
|
||||
internal class JavaSourceSetAccessorVariantFactoryG70 : JavaSourceSetsAccessor.JavaSourceSetsAccessorVariantFactory {
|
||||
internal class JavaSourceSetAccessorVariantFactoryG6 : JavaSourceSetsAccessor.JavaSourceSetsAccessorVariantFactory {
|
||||
override fun getInstance(project: Project): JavaSourceSetsAccessor = JavaSourceSetsAccessorG6(project.convention)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user