Skip to content
This repository was archived by the owner on Jul 16, 2024. It is now read-only.

Commit 7b75a25

Browse files
authored
Tidy up plugin/task configurations (#322)
Follow up 50d9bd8 & 1d5a91f.
1 parent 65585b3 commit 7b75a25

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

build.gradle.kts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import com.android.build.gradle.BaseExtension
33
import com.android.build.gradle.BasePlugin
44
import com.android.build.gradle.LibraryPlugin
55
import com.google.devtools.ksp.gradle.KspExtension
6+
import com.google.devtools.ksp.gradle.KspGradleSubplugin
67
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
7-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
8+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
89

910
plugins {
1011
alias(libs.plugins.android.application) apply false
@@ -35,19 +36,27 @@ allprojects {
3536
if (displayName.contains(":biz:") || name.startsWith("common")) setupCommon() else setupBase()
3637
}
3738
}
38-
plugins.withId(rootProject.libs.plugins.ksp.get().pluginId) {
39+
plugins.withType<KspGradleSubplugin>().configureEach {
3940
configure<KspExtension> {
4041
arg("room.incremental", "true")
4142
}
4243
}
44+
// Configure Java to use our chosen language level. Kotlin will automatically pick this up.
45+
// See https://kotlinlang.org/docs/gradle-configure-project.html#gradle-java-toolchains-support
46+
plugins.withType<JavaBasePlugin>().configureEach {
47+
extensions.configure<JavaPluginExtension> {
48+
toolchain {
49+
languageVersion.set(JavaLanguageVersion.of(17))
50+
}
51+
}
52+
}
4353

44-
tasks.withType<KotlinCompile> {
45-
kotlinOptions {
46-
allWarningsAsErrors = true
47-
jvmTarget = JavaVersion.VERSION_17.toString()
54+
tasks.withType<KotlinCompilationTask<*>>().configureEach {
55+
compilerOptions {
56+
allWarningsAsErrors.set(true)
4857
}
4958
}
50-
tasks.withType<Test> {
59+
tasks.withType<Test>().configureEach {
5160
useJUnitPlatform()
5261
}
5362
tasks.withType<ValidatePlugins>().configureEach {
@@ -102,9 +111,10 @@ fun <T : BaseExtension> Project.setupBase(block: T.() -> Unit) {
102111
sourceSets.configureEach {
103112
java.srcDirs("src/$name/kotlin")
104113
}
114+
// Can remove this once https://issuetracker.google.com/issues/260059413 is fixed.
105115
compileOptions {
106-
targetCompatibility(JavaVersion.VERSION_17)
107-
sourceCompatibility(JavaVersion.VERSION_17)
116+
sourceCompatibility = JavaVersion.VERSION_17
117+
targetCompatibility = JavaVersion.VERSION_17
108118
}
109119
packagingOptions.resources.excludes += setOf(
110120
"**/*.proto",

0 commit comments

Comments
 (0)