Meet
06/21/2024, 1:53 PMfun main() = application {
Window(
onCloseRequest = ::exitApplication,
title = "News app",
) {
val roomDatabase = createRoomDatabase()
Text("Hello world")
}
}
fun createRoomDatabase(): NewsDatabase {
val dbFile = File(System.getProperty("java.io.tmpdir"), "my_room.db")
return Room.databaseBuilder<NewsDatabase>(name = dbFile.absolutePath,)
.setDriver(BundledSQLiteDriver())
.build()
}
NewsDatabase.kt
package data.local
import androidx.room.Database
import androidx.room.RoomDatabase
import data.model.Article
@Database(entities = [Article::class],version = 1, exportSchema = false)
abstract class NewsDatabase : RoomDatabase() {
abstract fun newsDao(): NewsDao
}
chrisjenx
06/21/2024, 4:09 PMchrisjenx
06/21/2024, 4:13 PMMeet
06/21/2024, 4:13 PMMeet
06/21/2024, 4:15 PMkotlin {
sourceSets.commonMain {
kotlin.srcDir("build/generated/ksp/metadata")
}
}
dependencies {
// ios laptop use
// ksp(libs.androidx.room.compiler)
// ios laptop use
// add("kspAndroid", libs.androidx.room.compiler)
// add("kspIosSimulatorArm64", libs.androidx.room.compiler)
// add("kspIosX64", libs.androidx.room.compiler)
// add("kspIosArm64", libs.androidx.room.compiler)
//
// this is for windows laptop
// Room
add("kspCommonMainMetadata", libs.androidx.room.compiler)
}
tasks.withType<org.jetbrains.kotlin.gradle.dsl.KotlinCompile<*>>().configureEach {
if (name != "kspCommonMainKotlinMetadata" ) {
dependsOn("kspCommonMainKotlinMetadata")
}
}
chrisjenx
06/21/2024, 4:17 PMadd("kspDesktop", libs.androidx.room.compiler)
chrisjenx
06/21/2024, 4:17 PMMeet
06/21/2024, 4:18 PMMeet
06/21/2024, 4:20 PMMeet
06/21/2024, 4:20 PMchrisjenx
06/21/2024, 4:21 PMchrisjenx
06/21/2024, 4:23 PMkotlin {
sourceSets.commonMain {
kotlin.srcDir("build/generated/ksp/metadata")
}
}
but I'm guessing based on snippets you've sentMeet
06/21/2024, 4:24 PMMeet
06/21/2024, 4:24 PMMeet
06/21/2024, 4:25 PMchrisjenx
06/21/2024, 4:25 PMchrisjenx
06/21/2024, 4:27 PM//...
kotlin {
sourceSets {
val commonMain by getting {
dependencies {
api(libs.kotlinx.datetime)
api(libs.kotlinx.serialization.json)
api(libs.androidx.room.runtime)
implementation(libs.kotlinx.serialization.json.okio)
implementation(libs.androidx.sqlite.bundled)
implementation(projects.coreTypes)
implementation(projects.coreUtil)
}
}
}
}
dependencies {
add("kspAndroid", libs.androidx.room.compiler)
add("kspDesktop", libs.androidx.room.compiler)
}
room {
schemaDirectory("$projectDir/schemas")
}
chrisjenx
06/21/2024, 4:27 PMchrisjenx
06/21/2024, 4:27 PMMeet
06/22/2024, 4:36 AM