From aa565cba5fb0ddd9e939b011f5b56e4e3464697f Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Mon, 17 Mar 2025 17:11:25 -0700 Subject: [PATCH] Remove Gradle Isolated Project violation Calls to Project.properties is not Gradle Isolated Projects safe as it causes Gradle to look through parent projects to find these. Move to using providers.gradleProperty as that does not have the same behavior. Test: ./gradlew build --dry-run -Dorg.gradle.unsafe.isolated-projects=true fewer warnings after the PR --- .../com/google/samples/apps/nowinandroid/KotlinAndroid.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt index 8a41dbfcc..5d396d2a4 100644 --- a/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/com/google/samples/apps/nowinandroid/KotlinAndroid.kt @@ -23,7 +23,6 @@ import org.gradle.api.plugins.JavaPluginExtension import org.gradle.kotlin.dsl.assign import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.provideDelegate import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension import org.jetbrains.kotlin.gradle.dsl.KotlinBaseExtension @@ -78,14 +77,16 @@ internal fun Project.configureKotlinJvm() { private inline fun Project.configureKotlin() = configure { // Treat all Kotlin warnings as errors (disabled by default) // Override by setting warningsAsErrors=true in your ~/.gradle/gradle.properties - val warningsAsErrors: String? by project + val warningsAsErrors = providers.gradleProperty("warningsAsErrors").map { + it.toBoolean() + }.orElse(false) when (this) { is KotlinAndroidProjectExtension -> compilerOptions is KotlinJvmProjectExtension -> compilerOptions else -> TODO("Unsupported project extension $this ${T::class}") }.apply { jvmTarget = JvmTarget.JVM_11 - allWarningsAsErrors = warningsAsErrors.toBoolean() + allWarningsAsErrors = warningsAsErrors freeCompilerArgs.add( // Enable experimental coroutines APIs, including Flow "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",