[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.Action
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.artifacts.component.BuildIdentifier
|
||||||
import org.gradle.api.invocation.Gradle
|
import org.gradle.api.invocation.Gradle
|
||||||
import org.gradle.api.provider.Provider
|
import org.gradle.api.provider.Provider
|
||||||
import org.gradle.api.services.BuildService
|
import org.gradle.api.services.BuildService
|
||||||
import org.gradle.api.services.BuildServiceParameters
|
import org.gradle.api.services.BuildServiceParameters
|
||||||
import org.gradle.api.services.BuildServiceSpec
|
import org.gradle.api.services.BuildServiceSpec
|
||||||
|
import org.gradle.util.GradleVersion
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
val Gradle.projectCacheDir
|
val Gradle.projectCacheDir
|
||||||
@@ -32,3 +34,22 @@ internal fun <T : BuildService<P>, P : BuildServiceParameters> Gradle.registerCl
|
|||||||
val serviceName = "${serviceClass.simpleName}_${serviceClass.java.classLoader.hashCode()}"
|
val serviceName = "${serviceClass.simpleName}_${serviceClass.java.classLoader.hashCode()}"
|
||||||
return sharedServices.registerIfAbsent(serviceName, serviceClass.java, configureAction)
|
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