mobile-wallet/build-logic/convention/build.gradle.kts

109 lines
3.3 KiB
Plaintext

import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
`kotlin-dsl`
}
group = "org.mifospay.buildlogic"
// Configure the build-logic plugins to target JDK 19
// This matches the JDK used to build the project, and is not related to what is running on device.
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
kotlin {
compilerOptions {
jvmTarget = JvmTarget.JVM_17
}
}
dependencies {
compileOnly(libs.android.gradlePlugin)
compileOnly(libs.android.tools.common)
compileOnly(libs.compose.gradlePlugin)
compileOnly(libs.kotlin.gradlePlugin)
compileOnly(libs.ksp.gradlePlugin)
compileOnly(libs.detekt.gradlePlugin)
compileOnly(libs.ktlint.gradlePlugin)
compileOnly(libs.spotless.gradle)
implementation(libs.truth)
compileOnly(libs.firebase.crashlytics.gradlePlugin)
compileOnly(libs.firebase.performance.gradlePlugin)
}
tasks {
validatePlugins {
enableStricterValidation = true
failOnWarning = true
}
}
gradlePlugin {
plugins {
// Android Plugins
register("androidApplicationCompose") {
id = "mifospay.android.application.compose"
implementationClass = "AndroidApplicationComposeConventionPlugin"
}
register("androidApplication") {
id = "mifospay.android.application"
implementationClass = "AndroidApplicationConventionPlugin"
}
register("androidFlavors") {
id = "mifospay.android.application.flavors"
implementationClass = "AndroidApplicationFlavorsConventionPlugin"
}
register("androidFirebase") {
id = "org.convention.android.application.firebase"
implementationClass = "AndroidApplicationFirebaseConventionPlugin"
}
register("androidLint") {
id = "org.convention.android.application.lint"
implementationClass = "AndroidLintConventionPlugin"
}
// KMP & CMP Plugins
register("cmpFeature") {
id = "org.convention.cmp.feature"
implementationClass = "CMPFeatureConventionPlugin"
}
register("kmpKoin") {
id = "org.convention.kmp.koin"
implementationClass = "KMPKoinConventionPlugin"
}
register("kmpLibrary") {
id = "org.convention.kmp.library"
implementationClass = "KMPLibraryConventionPlugin"
}
// Static Analysis & Formatting Plugins
register("detekt") {
id = "mifos.detekt.plugin"
implementationClass = "MifosDetektConventionPlugin"
description = "Configures detekt for the project"
}
register("spotless") {
id = "mifos.spotless.plugin"
implementationClass = "MifosSpotlessConventionPlugin"
description = "Configures spotless for the project"
}
register("ktlint") {
id = "mifos.ktlint.plugin"
implementationClass = "MifosKtlintConventionPlugin"
description = "Configures kotlinter for the project"
}
register("gitHooks") {
id = "mifos.git.hooks"
implementationClass = "MifosGitHooksConventionPlugin"
description = "Installs git hooks for the project"
}
}
}