[Gradle] Correct valueSourceProviderCompat

* rename it to valueSourceWithExecProviderCompat
* After Gradle 7.5 use provider.of

^KT-63044
This commit is contained in:
Anton Lakotka
2023-11-08 11:18:37 +01:00
committed by Space Team
parent ba7c341338
commit fe87f41c39
2 changed files with 6 additions and 6 deletions
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
import org.jetbrains.kotlin.gradle.testing.testTaskName
import org.jetbrains.kotlin.gradle.utils.XcodeUtils
import org.jetbrains.kotlin.gradle.utils.valueSourceProviderCompat
import org.jetbrains.kotlin.gradle.utils.valueSourceWithExecProviderCompat
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
@@ -67,7 +67,7 @@ private inline fun <reified T : KotlinNativeTest> KotlinNativeTarget.registerNat
private fun KotlinNativeSimulatorTest.configureDeviceId(konanTarget: KonanTarget) {
if (!isEnabled) return
val deviceIdProvider = project.valueSourceProviderCompat(XcodeDefaultTestDevicesValueSource::class.java)
val deviceIdProvider = project.valueSourceWithExecProviderCompat(XcodeDefaultTestDevicesValueSource::class.java)
// Extract primitive values to avoid [target] capture in lambda
val konanTargetFamily = konanTarget.family
@@ -97,13 +97,13 @@ internal fun ArtifactCollection.getResolvedArtifactsCompat(project: Project): Pr
}
/**
* ValueSources are not well-supported with Configuration Cache in early Gradle versions
* Gradle 8.1 is discovered experimentally
* ValueSources with injected ExecOperations are supported with Configuration Cache in Gradle 7.5+
* https://docs.gradle.org/7.5/release-notes.html#running-external-processes-at-configuration-time
*/
internal fun <T> Project.valueSourceProviderCompat(
internal fun <T> Project.valueSourceWithExecProviderCompat(
clazz: Class<out ValueSource<T, ValueSourceParameters.None>>
): Provider<T> {
return if (GradleVersion.current() < GradleVersion.version("8.1")) {
return if (GradleVersion.current() < GradleVersion.version("7.5")) {
val vs = project.objects.newInstance(clazz)
project.provider { vs.obtain() }
} else {