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_17 targetCompatibility = JavaVersion.VERSION_17 } 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) } 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" } // KMP & CMP Plugins register("cmpFeature") { id = "mifospay.cmp.feature" implementationClass = "CMPFeatureConventionPlugin" } register("kmpKoin") { id = "mifospay.kmp.koin" implementationClass = "KMPKoinConventionPlugin" } register("kmpLibrary") { id = "mifospay.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" } } }