72 lines
2.6 KiB
Kotlin
72 lines
2.6 KiB
Kotlin
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
plugins {
|
|
`kotlin-dsl`
|
|
}
|
|
|
|
group = "com.example.architecture.buildlogic"
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
tasks.withType<KotlinCompile>().configureEach {
|
|
compilerOptions {
|
|
jvmTarget = JvmTarget.JVM_17
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// The convention plugins apply these by id, so they only need them at compile time.
|
|
compileOnly(libs.android.gradlePlugin)
|
|
compileOnly(libs.kotlin.gradlePlugin)
|
|
compileOnly(libs.compose.compiler.gradlePlugin)
|
|
}
|
|
|
|
gradlePlugin {
|
|
plugins {
|
|
register("androidApplication") {
|
|
id = "architecture.android.application"
|
|
implementationClass = "com.example.architecture.convention.AndroidApplicationConventionPlugin"
|
|
}
|
|
register("androidLibrary") {
|
|
id = "architecture.android.library"
|
|
implementationClass = "com.example.architecture.convention.AndroidLibraryConventionPlugin"
|
|
}
|
|
register("androidFeature") {
|
|
id = "architecture.android.feature"
|
|
implementationClass = "com.example.architecture.convention.AndroidFeatureConventionPlugin"
|
|
}
|
|
register("androidFeatureViews") {
|
|
id = "architecture.android.feature.views"
|
|
implementationClass = "com.example.architecture.convention.AndroidFeatureViewsConventionPlugin"
|
|
}
|
|
register("domainModule") {
|
|
id = "architecture.domain.module"
|
|
implementationClass = "com.example.architecture.convention.DomainModuleConventionPlugin"
|
|
}
|
|
register("androidUnitTest") {
|
|
id = "architecture.android.unit.test"
|
|
implementationClass = "com.example.architecture.convention.AndroidUnitTestConventionPlugin"
|
|
}
|
|
register("compose") {
|
|
id = "architecture.compose"
|
|
implementationClass = "com.example.architecture.convention.ComposeConventionPlugin"
|
|
}
|
|
register("koin") {
|
|
id = "architecture.koin"
|
|
implementationClass = "com.example.architecture.convention.KoinConventionPlugin"
|
|
}
|
|
register("ktor") {
|
|
id = "architecture.ktor"
|
|
implementationClass = "com.example.architecture.convention.KtorConventionPlugin"
|
|
}
|
|
register("kotlinxSerialization") {
|
|
id = "architecture.kotlinx.serialization"
|
|
implementationClass = "com.example.architecture.convention.KotlinxSerializationConventionPlugin"
|
|
}
|
|
}
|
|
}
|