@@ -2,13 +2,14 @@ package com.twofasapp.buildlogic.extension
22
33import com.android.build.api.dsl.CommonExtension
44import com.twofasapp.buildlogic.version.AppConfig
5- import com.twofasapp.buildlogic.version.AppConfig.compileSdk
6- import com.twofasapp.buildlogic.version.AppConfig.minSdk
75import org.gradle.api.JavaVersion
86import org.gradle.api.Project
9- import org.gradle.api.plugins.ExtensionAware
7+ import org.gradle.api.tasks.testing.Test
8+ import org.gradle.kotlin.dsl.assign
109import org.gradle.kotlin.dsl.dependencies
11- import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
10+ import org.gradle.kotlin.dsl.withType
11+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
12+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1213
1314internal fun Project.applyKotlinAndroid (
1415 commonExtension : CommonExtension <* , * , * , * , * , * >,
@@ -34,35 +35,21 @@ internal fun Project.applyKotlinAndroid(
3435 }
3536
3637 buildFeatures {
37- viewBinding = true
3838 buildConfig = true
3939 }
4040
41- kotlinOptions {
42- jvmTarget = " 17"
43-
44- freeCompilerArgs = freeCompilerArgs + listOf (
45- " -opt-in=kotlin.RequiresOptIn" ,
46- // Enable experimental coroutines APIs, including Flow
47- " -opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" ,
48- " -opt-in=kotlinx.coroutines.FlowPreview" ,
49- " -opt-in=kotlin.Experimental" ,
50- " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api" ,
51- " -opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi" ,
52- " -P" ,
53- " plugin:androidx.compose.compiler.plugins.kotlin:suppressKotlinVersionCompatibilityCheck=true" ,
54- )
55- }
56-
5741 packaging {
5842 resources {
5943 excludes + = " META-INF/DEPENDENCIES"
6044 excludes + = " META-INF/LICENSE"
45+ excludes + = " META-INF/LICENSE.md"
46+ excludes + = " META-INF/LICENSE-notice.md"
6147 excludes + = " META-INF/LICENSE.txt"
6248 excludes + = " META-INF/license.txt"
6349 excludes + = " META-INF/NOTICE"
6450 excludes + = " META-INF/NOTICE.txt"
6551 excludes + = " META-INF/notice.txt"
52+ excludes + = " META-INF/ASL2.0"
6653 excludes + = " META-INF/INDEX.LIST"
6754 excludes + = " /META-INF/{AL2.0,LGPL2.1}"
6855 }
@@ -73,13 +60,32 @@ internal fun Project.applyKotlinAndroid(
7360 isIncludeAndroidResources = true
7461 }
7562 }
63+
64+ tasks.withType<Test >().configureEach {
65+ failOnNoDiscoveredTests = false
66+ }
67+
68+ configureKotlin()
7669 }
7770
7871 dependencies {
7972 add(" coreLibraryDesugaring" , libs.findLibrary(" desugar" ).get())
8073 }
8174}
8275
83- internal fun CommonExtension <* , * , * , * , * , * >.kotlinOptions (block : KotlinJvmOptions .() -> Unit ) {
84- (this as ExtensionAware ).extensions.configure(" kotlinOptions" , block)
85- }
76+ private fun Project.configureKotlin () {
77+ tasks.withType<KotlinCompile >().configureEach {
78+ compilerOptions {
79+ jvmTarget = JvmTarget .JVM_17
80+
81+ freeCompilerArgs.addAll(
82+ " -opt-in=kotlin.RequiresOptIn" ,
83+ " -opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" ,
84+ " -opt-in=kotlinx.coroutines.FlowPreview" ,
85+ " -opt-in=kotlin.Experimental" ,
86+ " -opt-in=androidx.compose.material3.ExperimentalMaterial3Api" ,
87+ " -opt-in=androidx.lifecycle.compose.ExperimentalLifecycleComposeApi" ,
88+ )
89+ }
90+ }
91+ }
0 commit comments