import com.android.build.gradle.BaseExtension import com.android.build.gradle.BasePlugin import org.gradle.api.tasks.testing.logging.TestLogEvent import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import java.util.* plugins { alias(libs.plugins.kotlinter) alias(libs.plugins.gradle.versions) alias(androidx.plugins.application) apply false alias(androidx.plugins.library) apply false alias(kotlinx.plugins.android) apply false alias(kotlinx.plugins.compose.compiler) apply false alias(kotlinx.plugins.multiplatform) apply false alias(kotlinx.plugins.parcelize) apply false alias(kotlinx.plugins.serialization) apply false alias(libs.plugins.aboutlibraries) apply false alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.google.services) apply false alias(libs.plugins.moko) apply false alias(libs.plugins.sqldelight) apply false } subprojects { tasks.withType { compilerOptions { jvmTarget = JvmTarget.JVM_17 } } tasks.withType { useJUnitPlatform() testLogging { events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) } } plugins.withType { configure { compileSdkVersion(AndroidConfig.compileSdk) ndkVersion = AndroidConfig.ndk defaultConfig { minSdk = AndroidConfig.minSdk targetSdk = AndroidConfig.targetSdk ndk { version = AndroidConfig.ndk } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 isCoreLibraryDesugaringEnabled = true } dependencies { add("coreLibraryDesugaring", libs.desugar) } } } } tasks.named("dependencyUpdates", com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask::class.java).configure { rejectVersionIf { val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { candidate.version.uppercase(Locale.ROOT).contains(it) } val regex = "^[0-9,.v-]+(-r)?$".toRegex() val isStable = stableKeyword || regex.matches(candidate.version) isStable.not() } // optional parameters checkForGradleUpdate = true outputFormatter = "json" outputDir = "build/dependencyUpdates" reportfileName = "report" } tasks.register("clean", Delete::class) { delete(rootProject.layout.buildDirectory) }