27 lines
872 B
Kotlin
27 lines
872 B
Kotlin
import androidx.room.gradle.RoomExtension
|
|
import org.gradle.api.Plugin
|
|
import org.gradle.api.Project
|
|
import org.gradle.kotlin.dsl.configure
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
|
|
class AndroidRoomConventionPlugin : Plugin<Project> {
|
|
override fun apply(target: Project) {
|
|
with(target) {
|
|
pluginManager.apply("androidx.room")
|
|
pluginManager.apply("com.google.devtools.ksp")
|
|
|
|
extensions.configure<RoomExtension> {
|
|
schemaDirectory("$projectDir/schemas")
|
|
}
|
|
|
|
dependencies {
|
|
add("implementation", libs.findBundle("room").get())
|
|
add("ksp", libs.findLibrary("room-compiler").get())
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private val Project.libs
|
|
get() = extensions.getByType(org.gradle.api.artifacts.VersionCatalogsExtension::class.java)
|
|
.named("libs")
|