mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
72 lines
2.8 KiB
Kotlin
72 lines
2.8 KiB
Kotlin
/*
|
|
* Copyright (c) 2025 Meshtastic LLC
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import androidx.room.gradle.RoomExtension
|
|
import com.google.devtools.ksp.gradle.KspExtension
|
|
import org.gradle.api.Plugin
|
|
import org.gradle.api.Project
|
|
import org.gradle.kotlin.dsl.apply
|
|
import org.gradle.kotlin.dsl.configure
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
|
import org.meshtastic.buildlogic.library
|
|
import org.meshtastic.buildlogic.libs
|
|
|
|
class AndroidRoomConventionPlugin : Plugin<Project> {
|
|
|
|
override fun apply(target: Project) {
|
|
with(target) {
|
|
apply(plugin = "androidx.room")
|
|
apply(plugin = "com.google.devtools.ksp")
|
|
|
|
extensions.configure<KspExtension> {
|
|
arg("room.generateKotlin", "true")
|
|
}
|
|
|
|
extensions.configure<RoomExtension> {
|
|
// The schemas directory contains a schema file for each version of the Room database.
|
|
// This is required to enable Room auto migrations.
|
|
// See https://developer.android.com/reference/kotlin/androidx/room/AutoMigration.
|
|
schemaDirectory("$projectDir/schemas")
|
|
}
|
|
|
|
val roomRuntime = libs.library("androidx.room.runtime")
|
|
val roomCompiler = libs.library("androidx.room.compiler")
|
|
val roomTesting = libs.library("androidx-room-testing")
|
|
|
|
pluginManager.withPlugin("org.jetbrains.kotlin.multiplatform") {
|
|
extensions.configure<KotlinMultiplatformExtension> {
|
|
sourceSets.getByName("commonMain").dependencies {
|
|
implementation(roomRuntime)
|
|
}
|
|
}
|
|
dependencies {
|
|
"kspCommonMainMetadata"(roomCompiler)
|
|
"kspAndroid"(roomCompiler)
|
|
}
|
|
}
|
|
|
|
pluginManager.withPlugin("org.jetbrains.kotlin.android") {
|
|
dependencies {
|
|
"implementation"(roomRuntime)
|
|
"ksp"(roomCompiler)
|
|
"androidTestImplementation"(roomTesting)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|