2024-01-13 23:24:35 +00:00
|
|
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
2024-01-22 04:02:41 +00:00
|
|
|
buildscript {
|
|
|
|
|
dependencies {
|
|
|
|
|
classpath(libs.google.oss.licenses.plugin) {
|
|
|
|
|
exclude(group = "com.google.protobuf")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-13 23:24:35 +00:00
|
|
|
plugins {
|
2024-01-22 04:02:41 +00:00
|
|
|
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
|
2024-01-13 23:24:35 +00:00
|
|
|
alias(libs.plugins.kotlin.serialization) apply false
|
2024-01-22 04:02:41 +00:00
|
|
|
alias(libs.plugins.kotlin.parcelize) apply false
|
|
|
|
|
alias(libs.plugins.dependencyGuard) apply false
|
2024-01-13 23:24:35 +00:00
|
|
|
alias(libs.plugins.firebase.crashlytics) apply false
|
2024-01-22 04:02:41 +00:00
|
|
|
alias(libs.plugins.firebase.perf) apply false
|
2024-01-13 23:24:35 +00:00
|
|
|
alias(libs.plugins.gms) apply false
|
2024-01-22 04:02:41 +00:00
|
|
|
alias(libs.plugins.ksp) apply false
|
|
|
|
|
alias(libs.plugins.roborazzi) apply false
|
|
|
|
|
alias(libs.plugins.secrets) apply false
|
2024-01-28 13:44:28 +00:00
|
|
|
alias(libs.plugins.kotlin.android) apply false
|
2024-08-11 17:36:53 +00:00
|
|
|
alias(libs.plugins.module.graph) apply true
|
2024-09-04 16:37:34 +00:00
|
|
|
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
|
2024-08-30 16:09:54 +00:00
|
|
|
// 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
|
2025-01-13 16:36:46 +00:00
|
|
|
alias(libs.plugins.ktorfit) apply false
|
2024-09-06 10:19:46 +00:00
|
|
|
}
|
|
|
|
|
|
2024-09-23 17:27:50 +00:00
|
|
|
object DynamicVersion {
|
|
|
|
|
fun setDynamicVersion(file: File, version: String) {
|
|
|
|
|
val cleanedVersion = version.split('+')[0]
|
|
|
|
|
file.writeText(cleanedVersion)
|
2024-09-06 10:19:46 +00:00
|
|
|
}
|
2024-09-23 17:27:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
tasks.register("versionFile") {
|
|
|
|
|
val file = File(projectDir, "version.txt")
|
|
|
|
|
|
|
|
|
|
DynamicVersion.setDynamicVersion(file, project.version.toString())
|
2025-01-23 16:56:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Task to print all the module paths in the project e.g. :core:data
|
|
|
|
|
// Used by module graph generator script
|
|
|
|
|
tasks.register("printModulePaths") {
|
|
|
|
|
subprojects {
|
2025-07-22 11:41:01 +00:00
|
|
|
if (subprojects.isEmpty()) {
|
2025-01-23 16:56:04 +00:00
|
|
|
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")
|
2024-05-20 16:34:57 +00:00
|
|
|
}
|