diff --git a/build.gradle.kts b/build.gradle.kts index 8ec198144..977b9ee7c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,4 @@ +import com.android.build.gradle.LibraryExtension import org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginExtension import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -16,18 +17,16 @@ plugins { subprojects { tasks.withType().configureEach { - kotlinExtension.sourceSets { - all { - languageSettings { - optIn("kotlinx.coroutines.ExperimentalCoroutinesApi") - optIn("androidx.compose.foundation.ExperimentalFoundationApi") - optIn("androidx.compose.foundation.layout.ExperimentalLayoutApi") - optIn("androidx.compose.material3.ExperimentalMaterial3Api") - optIn("androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi") - optIn("androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi") - optIn("androidx.tv.material3.ExperimentalTvMaterial3Api") - optIn("com.google.accompanist.permissions.ExperimentalPermissionsApi") - } + kotlinExtension.sourceSets.all { + languageSettings { + optIn("kotlinx.coroutines.ExperimentalCoroutinesApi") + optIn("androidx.compose.foundation.ExperimentalFoundationApi") + optIn("androidx.compose.foundation.layout.ExperimentalLayoutApi") + optIn("androidx.compose.material3.ExperimentalMaterial3Api") + optIn("androidx.compose.material3.windowsizeclass.ExperimentalMaterial3WindowSizeClassApi") + optIn("androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi") + optIn("androidx.tv.material3.ExperimentalTvMaterial3Api") + optIn("com.google.accompanist.permissions.ExperimentalPermissionsApi") } } } @@ -39,10 +38,33 @@ subprojects { includeSourceInformation = true val file = rootProject.layout.projectDirectory.file("compose_compiler_config.conf") if (file.asFile.exists()) { - stabilityConfigurationFile.set(file) + stabilityConfigurationFile = file + } + metricsDestination = layout.buildDirectory.dir("compose_metrics") + reportsDestination = layout.buildDirectory.dir("compose_metrics") + } + } + plugins.withId("com.android.library") { + configure { + compileSdk = 34 + defaultConfig { + minSdk = 26 + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles("consumer-rules.pro") + } + buildTypes { + release { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } - metricsDestination.set(layout.buildDirectory.dir("compose_metrics")) - reportsDestination.set(layout.buildDirectory.dir("compose_metrics")) } } } diff --git a/codec/lite/build.gradle.kts b/codec/lite/build.gradle.kts index c3d0a1051..c224c5737 100644 --- a/codec/lite/build.gradle.kts +++ b/codec/lite/build.gradle.kts @@ -5,28 +5,6 @@ plugins { android { namespace = "com.m3u.codec.lite" - compileSdk = 34 - - defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/codec/rich/build.gradle.kts b/codec/rich/build.gradle.kts index 86eff1c51..2d5c7afa9 100644 --- a/codec/rich/build.gradle.kts +++ b/codec/rich/build.gradle.kts @@ -5,28 +5,6 @@ plugins { android { namespace = "com.m3u.codec.rich" - compileSdk = 34 - - defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = false - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index ed546af8e..cece6e30a 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -9,25 +9,6 @@ plugins { android { namespace = "com.m3u.core" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/data/build.gradle.kts b/data/build.gradle.kts index 5f6ffd6c3..804fcbb0c 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -8,25 +8,6 @@ plugins { } android { namespace = "com.m3u.data" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/channel/build.gradle.kts b/feature/channel/build.gradle.kts index c9ad7c917..3c2ac1841 100644 --- a/feature/channel/build.gradle.kts +++ b/feature/channel/build.gradle.kts @@ -9,25 +9,6 @@ plugins { android { namespace = "com.m3u.feature.channel" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/crash/build.gradle.kts b/feature/crash/build.gradle.kts index f2de920b1..c366bb804 100644 --- a/feature/crash/build.gradle.kts +++ b/feature/crash/build.gradle.kts @@ -8,25 +8,6 @@ plugins { android { namespace = "com.m3u.feature.crash" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/favorite/build.gradle.kts b/feature/favorite/build.gradle.kts index 49b995b0d..bc0aaaa38 100644 --- a/feature/favorite/build.gradle.kts +++ b/feature/favorite/build.gradle.kts @@ -8,25 +8,6 @@ plugins { android { namespace = "com.m3u.feature.favorite" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/foryou/build.gradle.kts b/feature/foryou/build.gradle.kts index 911c47cf3..dd4d5cf0a 100644 --- a/feature/foryou/build.gradle.kts +++ b/feature/foryou/build.gradle.kts @@ -8,25 +8,6 @@ plugins { android { namespace = "com.m3u.feature.foryou" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/playlist-configuration/build.gradle.kts b/feature/playlist-configuration/build.gradle.kts index 1aeef7915..72006cd5a 100644 --- a/feature/playlist-configuration/build.gradle.kts +++ b/feature/playlist-configuration/build.gradle.kts @@ -8,28 +8,6 @@ plugins { android { namespace = "com.m3u.feature.playlist.configuration" - compileSdk = 34 - - defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/playlist/build.gradle.kts b/feature/playlist/build.gradle.kts index 5268b223f..f7583b6db 100644 --- a/feature/playlist/build.gradle.kts +++ b/feature/playlist/build.gradle.kts @@ -10,25 +10,6 @@ plugins { android { namespace = "com.m3u.feature.playlist" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/feature/setting/build.gradle.kts b/feature/setting/build.gradle.kts index b2172fa8b..ef44119ed 100644 --- a/feature/setting/build.gradle.kts +++ b/feature/setting/build.gradle.kts @@ -8,25 +8,6 @@ plugins { android { namespace = "com.m3u.feature.setting" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/i18n/build.gradle.kts b/i18n/build.gradle.kts index cfef3d8e3..cdcca4ac5 100644 --- a/i18n/build.gradle.kts +++ b/i18n/build.gradle.kts @@ -5,28 +5,6 @@ plugins { android { namespace = "com.m3u.i18n" - compileSdk = 34 - - defaultConfig { - minSdk = 26 - - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/material/build.gradle.kts b/material/build.gradle.kts index 100e7c870..01dc392a1 100644 --- a/material/build.gradle.kts +++ b/material/build.gradle.kts @@ -6,25 +6,6 @@ plugins { android { namespace = "com.m3u.material" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" } diff --git a/ui/build.gradle.kts b/ui/build.gradle.kts index 1370c029e..8b0a0f7ce 100644 --- a/ui/build.gradle.kts +++ b/ui/build.gradle.kts @@ -9,25 +9,6 @@ plugins { android { namespace = "com.m3u.ui" - compileSdk = 34 - defaultConfig { - minSdk = 26 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles("consumer-rules.pro") - } - buildTypes { - release { - isMinifyEnabled = true - proguardFiles( - getDefaultProguardFile("proguard-android-optimize.txt"), - "proguard-rules.pro" - ) - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } kotlinOptions { jvmTarget = "17" }