[Gradle] Implement 'buildNameCompat' and 'buildPathCompat' utilities
^KT-58157 In Progress
This commit is contained in:
committed by
Space Team
parent
f5e946c0b2
commit
c174bb9aa9
+21
@@ -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 <T : BuildService<P>, 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"
|
||||
Reference in New Issue
Block a user