allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } // Pin every Android subproject to JVM 17 so plugins that ship Kotlin sources // compiled with a higher target (e.g. receive_sharing_intent at 21) or stale // Java compatibility (e.g. home_widget at 1.8) don't break the build under // newer Gradle/Kotlin tooling. Registered before evaluationDependsOn so the // afterEvaluate fires at the right point in the lifecycle. subprojects { sub -> sub.afterEvaluate { if (sub.hasProperty('android')) { sub.android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } } } sub.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { jvmTarget = '17' } } } } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }