@@ -4,7 +4,11 @@ import com.android.build.api.dsl.CommonExtension
4
4
import org.gradle.api.JavaVersion
5
5
import org.gradle.api.Project
6
6
import org.gradle.api.plugins.ExtensionAware
7
+ import org.gradle.kotlin.dsl.provideDelegate
8
+ import org.gradle.kotlin.dsl.withType
9
+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
7
10
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
11
+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
8
12
9
13
/* *
10
14
* Configure base Kotlin with Android options
@@ -28,26 +32,26 @@ internal fun Project.configureKotlinAndroid(
28
32
abortOnError = false
29
33
}
30
34
31
- kotlinOptions {
32
- // Treat all Kotlin warnings as errors (disabled by default)
33
- allWarningsAsErrors = properties[" warningsAsErrors" ] as ? Boolean ? : false
34
-
35
- freeCompilerArgs = freeCompilerArgs + listOf (
36
- " -opt-in=kotlin.RequiresOptIn" ,
37
- // Enable experimental coroutines APIs, including Flow
38
- " -opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" ,
39
- // Enable experimental compose APIs
40
- " -opt-in=com.google.accompanist.pager.ExperimentalPagerApi" ,
41
- " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api" ,
42
- " -opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi" ,
43
- )
44
-
45
- // Set JVM target to 11
46
- jvmTarget = JavaVersion .VERSION_17 .toString()
35
+ tasks.withType<KotlinCompile >().configureEach {
36
+ compilerOptions {
37
+ val warningsAsErrors: String? by project
38
+ // Treat all Kotlin warnings as errors (disabled by default)
39
+ allWarningsAsErrors.set(warningsAsErrors.toBoolean())
40
+
41
+ freeCompilerArgs.addAll(
42
+ listOf (
43
+ " -opt-in=kotlin.RequiresOptIn" ,
44
+ // Enable experimental coroutines APIs, including Flow
45
+ " -opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" ,
46
+ // Enable experimental compose APIs
47
+ " -opt-in=com.google.accompanist.pager.ExperimentalPagerApi" ,
48
+ " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api" ,
49
+ " -opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi" ,
50
+ )
51
+ )
52
+
53
+ jvmTarget.set(JvmTarget .JVM_17 )
54
+ }
47
55
}
48
56
}
49
57
}
50
-
51
- fun CommonExtension <* , * , * , * , * , * >.kotlinOptions (block : KotlinJvmOptions .() -> Unit ) {
52
- (this as ExtensionAware ).extensions.configure(" kotlinOptions" , block)
53
- }
0 commit comments