Skip to content

Commit 90ed2df

Browse files
committed
Merge remote-tracking branch 'origin/main' into g/20250423/test-older-kmp
2 parents 778a3e9 + 1afb34c commit 90ed2df

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowKmpPlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.github.jengelman.gradle.plugins.shadow
22

33
import com.github.jengelman.gradle.plugins.shadow.ShadowJavaPlugin.Companion.registerShadowJarCommon
4+
import com.github.jengelman.gradle.plugins.shadow.internal.isAtLeastKgpVersion
45
import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey
56
import kotlin.collections.contains
67
import org.gradle.api.Plugin
78
import org.gradle.api.Project
89
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
910
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
10-
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion as KgpVersion
1111
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
1212

1313
public abstract class ShadowKmpPlugin : Plugin<Project> {
@@ -30,7 +30,7 @@ public abstract class ShadowKmpPlugin : Plugin<Project> {
3030
},
3131
)
3232

33-
if (KgpVersion.DEFAULT < KgpVersion.KOTLIN_2_1) return@registerShadowJarCommon
33+
if (!isAtLeastKgpVersion(2, 1, 0)) return@registerShadowJarCommon
3434

3535
@OptIn(ExperimentalKotlinGradlePluginApi::class)
3636
target.mainRun {

src/main/kotlin/com/github/jengelman/gradle/plugins/shadow/ShadowPlugin.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.jengelman.gradle.plugins.shadow
22

3+
import com.github.jengelman.gradle.plugins.shadow.internal.KOTLIN_MULTIPLATFORM_PLUGIN_ID
34
import com.github.jengelman.gradle.plugins.shadow.legacy.LegacyShadowPlugin
45
import org.gradle.api.Plugin
56
import org.gradle.api.Project
@@ -18,7 +19,7 @@ public abstract class ShadowPlugin : Plugin<Project> {
1819
withType(ApplicationPlugin::class.java) {
1920
apply(ShadowApplicationPlugin::class.java)
2021
}
21-
withId("org.jetbrains.kotlin.multiplatform") {
22+
withId(KOTLIN_MULTIPLATFORM_PLUGIN_ID) {
2223
apply(ShadowKmpPlugin::class.java)
2324
}
2425

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.github.jengelman.gradle.plugins.shadow.internal
2+
3+
import org.gradle.api.Project
4+
import org.jetbrains.kotlin.gradle.plugin.KotlinBasePlugin
5+
6+
internal const val KOTLIN_MULTIPLATFORM_PLUGIN_ID = "org.jetbrains.kotlin.multiplatform"
7+
8+
internal fun Project.isAtLeastKgpVersion(
9+
major: Int,
10+
minor: Int,
11+
patch: Int,
12+
id: String = KOTLIN_MULTIPLATFORM_PLUGIN_ID,
13+
): Boolean {
14+
val plugin = plugins.getPlugin(id) as KotlinBasePlugin
15+
val elements = plugin.pluginVersion.takeWhile { it != '-' }.split(".")
16+
val kgpMajor = elements[0].toInt()
17+
val kgpMinor = elements[1].toInt()
18+
val kgpPatch = elements[2].toInt()
19+
return kgpMajor > major || (kgpMajor == major && (kgpMinor > minor || (kgpMinor == minor && kgpPatch >= patch)))
20+
}

0 commit comments

Comments
 (0)