// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { dependencies { classpath(libs.google.oss.licenses.plugin) { exclude(group = "com.google.protobuf") } } } plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.android.test) apply false alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.serialization) apply false alias(libs.plugins.kotlin.parcelize) apply false alias(libs.plugins.dependencyGuard) apply false alias(libs.plugins.firebase.crashlytics) apply false alias(libs.plugins.firebase.perf) apply false alias(libs.plugins.gms) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.roborazzi) apply false alias(libs.plugins.secrets) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.module.graph) apply true alias(libs.plugins.detekt) apply false alias(libs.plugins.spotless) apply false alias(libs.plugins.ktlint) apply false alias(libs.plugins.version.catalog.linter) apply true // Multiplatform plugins alias(libs.plugins.jetbrainsCompose) apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.kotlinMultiplatform) apply false alias(libs.plugins.wire) apply false alias(libs.plugins.ktorfit) apply false } object DynamicVersion { fun setDynamicVersion(file: File, version: String) { val cleanedVersion = version.split('+')[0] file.writeText(cleanedVersion) } } tasks.register("versionFile") { val file = File(projectDir, "version.txt") DynamicVersion.setDynamicVersion(file, project.version.toString()) } // Task to print all the module paths in the project e.g. :core:data // Used by module graph generator script tasks.register("printModulePaths") { subprojects { if (subprojects.isEmpty()) { println(this.path) } } } // Configuration for CMP module dependency graph moduleGraphAssert { configurations += setOf("commonMainImplementation", "commonMainApi") configurations += setOf("androidMainImplementation", "androidMainApi") configurations += setOf("desktopMainImplementation", "desktopMainApi") configurations += setOf("jsMainImplementation", "jsMainApi") configurations += setOf("nativeMainImplementation", "nativeMainApi") configurations += setOf("wasmJsMainImplementation", "wasmJsMainApi") }