[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.internal.kotlinTestRegistry
import org.jetbrains.kotlin.gradle.testing.testTaskName import org.jetbrains.kotlin.gradle.testing.testTaskName
import org.jetbrains.kotlin.gradle.utils.XcodeUtils 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.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget 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) { private fun KotlinNativeSimulatorTest.configureDeviceId(konanTarget: KonanTarget) {
if (!isEnabled) return 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 // Extract primitive values to avoid [target] capture in lambda
val konanTargetFamily = konanTarget.family 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 * ValueSources with injected ExecOperations are supported with Configuration Cache in Gradle 7.5+
* Gradle 8.1 is discovered experimentally * 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>> clazz: Class<out ValueSource<T, ValueSourceParameters.None>>
): Provider<T> { ): Provider<T> {
return if (GradleVersion.current() < GradleVersion.version("8.1")) { return if (GradleVersion.current() < GradleVersion.version("7.5")) {
val vs = project.objects.newInstance(clazz) val vs = project.objects.newInstance(clazz)
project.provider { vs.obtain() } project.provider { vs.obtain() }
} else { } else {