Skip to content

Commit

Permalink
Fix deprecation warning for forUseAtConfigurationTime
Browse files Browse the repository at this point in the history
`forUseAtConfigurationTime` is a no-op starting at Gradle 7.4, so it can safely not be used starting at this version. This will have no affect other than to prevent a deprecation warning for those using newer gradle versions.
  • Loading branch information
mgroth0 authored Nov 7, 2024
1 parent b23f990 commit 9b8e794
Showing 1 changed file with 8 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider
import org.gradle.api.provider.ProviderFactory
import org.jetbrains.kotlin.gradle.plugin.extraProperties
import org.gradle.util.GradleVersion

internal inline fun <reified T> ObjectFactory.new(vararg params: Any): T =
newInstance(T::class.java, *params)
Expand All @@ -38,11 +39,13 @@ internal fun ProviderFactory.valueOrNull(prop: String): Provider<String?> =
}

private fun Provider<String?>.forUseAtConfigurationTimeSafe(): Provider<String?> =
try {
forUseAtConfigurationTime()
} catch (e: NoSuchMethodError) {
// todo: remove once we drop support for Gradle 6.4
// forUseAtConfigurationTime is a no-op starting at Gradle 7.4 and just produces deprecation warnings.
// See https://docs.gradle.org/current/kotlin-dsl/gradle/org.gradle.api.provider/-provider/for-use-at-configuration-time.html
if (GradleVersion.current() >= GradleVersion.version("7.4")) {
this
} else {
// todo: remove once we drop support for Gradle 6.4
forUseAtConfigurationTime()
}

internal fun Provider<String?>.toBooleanProvider(defaultValue: Boolean): Provider<Boolean> =
Expand All @@ -51,4 +54,4 @@ internal fun Provider<String?>.toBooleanProvider(defaultValue: Boolean): Provide
internal fun Project.findLocalOrGlobalProperty(name: String, default: String = ""): Provider<String> = provider {
if (extraProperties.has(name)) extraProperties.get(name).toString()
else providers.gradleProperty(name).forUseAtConfigurationTimeSafe().getOrElse(default)
}
}

0 comments on commit 9b8e794

Please sign in to comment.