diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleUtils.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleUtils.kt index 98e3c17bab4..b434b2c95d2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleUtils.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/utils/gradleUtils.kt @@ -7,11 +7,13 @@ package org.jetbrains.kotlin.gradle.utils import org.gradle.api.Action import org.gradle.api.Project +import org.gradle.api.artifacts.component.BuildIdentifier import org.gradle.api.invocation.Gradle import org.gradle.api.provider.Provider import org.gradle.api.services.BuildService import org.gradle.api.services.BuildServiceParameters import org.gradle.api.services.BuildServiceSpec +import org.gradle.util.GradleVersion import kotlin.reflect.KClass val Gradle.projectCacheDir @@ -32,3 +34,22 @@ internal fun , P : BuildServiceParameters> Gradle.registerCl val serviceName = "${serviceClass.simpleName}_${serviceClass.java.classLoader.hashCode()}" return sharedServices.registerIfAbsent(serviceName, serviceClass.java, configureAction) } + +/** + * Will return the [BuildIdentifier.getName] for older Gradle versions (deprecated), + * and will calculate the 'buildName' from the new 'buildPath' for Gradle versions higher than 8.2 + */ +internal val BuildIdentifier.buildNameCompat: String + get() = if (GradleVersion.current() >= GradleVersion.version("8.2")) + if (buildPath == ":") ":" else buildPath.split(":").last() + else @Suppress("DEPRECATION") this.name + + +/** + * Will return [BuildIdentifier.getBuildPath] for Gradle versions higher than 8.2 + * Will calculate the build path from the previously accessible [BuildIdentifier.getName]: + * Note, this calculation will not be correct for nested composite builds! + */ +internal val BuildIdentifier.buildPathCompat: String + get() = if (GradleVersion.current() >= GradleVersion.version("8.2")) buildPath + else @Suppress("DEPRECATION") if (name.startsWith(":")) name else ":$name" \ No newline at end of file