2rabs/nito-app

View on GitHub
build-logic/build.gradle.kts

Summary

Maintainability
Test Coverage
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    `kotlin-dsl`
}

group = "club.nito.buildlogic"

repositories {
    google()
    mavenCentral()
    gradlePluginPortal()
}

// If we use jvmToolchain, we need to install JDK 17
val compileKotlin: KotlinCompile by tasks
compileKotlin.kotlinOptions.jvmTarget = "17"

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

dependencies {
    implementation(libs.bundles.plugins)
    // https://github.com/google/dagger/issues/3068#issuecomment-1470534930
    implementation(libs.javaPoet)
}

gradlePlugin {
    plugins {
        // Primitives
        register("androidCrashlytics") {
            id = "nito.primitive.android.crashlytics"
            implementationClass = "club.nito.primitive.AndroidCrashlyticsPlugin"
        }
        register("androidFirebase") {
            id = "nito.primitive.android.firebase"
            implementationClass = "club.nito.primitive.AndroidFirebasePlugin"
        }
        register("kmp") {
            id = "nito.primitive.kmp"
            implementationClass = "club.nito.primitive.KmpPlugin"
        }
        register("kmpIos") {
            id = "nito.primitive.kmp.ios"
            implementationClass = "club.nito.primitive.KmpIosPlugin"
        }
        register("kmpAndroidApplication") {
            id = "nito.primitive.kmp.androidapplication"
            implementationClass = "club.nito.primitive.KmpAndroidApplicationPlugin"
        }
        register("kmpAndroid") {
            id = "nito.primitive.kmp.android"
            implementationClass = "club.nito.primitive.KmpAndroidPlugin"
        }
        register("kmpJs") {
            id = "nito.primitive.kmp.js"
            implementationClass = "club.nito.primitive.KmpJsPlugin"
        }
        register("kmpCompose") {
            id = "nito.primitive.kmp.compose"
            implementationClass = "club.nito.primitive.KmpComposePlugin"
        }
        register("kmpSqlDelight") {
            id = "nito.primitive.kmp.sqldelight"
            implementationClass = "club.nito.primitive.KmpSqlDelightPlugin"
        }
        register("kmpKotlinSerialization") {
            id = "nito.primitive.kmp.serialization"
            implementationClass = "club.nito.primitive.KotlinSerializationPlugin"
        }
        register("detekt") {
            id = "nito.primitive.detekt"
            implementationClass = "club.nito.primitive.DetektPlugin"
        }
        register("ossLicenses") {
            id = "nito.primitive.android.osslicenses"
            implementationClass = "club.nito.primitive.OssLicensesPlugin"
        }
        register("kotest") {
            id = "nito.primitive.kotest"
            implementationClass = "club.nito.primitive.KotestPlugin"
        }

        // Conventions
        register("feature") {
            id = "nito.convention.feature"
            implementationClass = "club.nito.convention.FeaturePlugin"
        }
    }
}