在过去,我们正在开发一个用于移动设备的kotlin多平台项目,该项目使用sqldelight进行数据库访问。
现在我们想要添加一些本地桌面目标,比如mingwX64和linuxX64,但是目前sqldelight不适用于这些目标,所以我们希望使用其他库来处理桌面上的数据库访问。但是如何将sqldelight配置设置为只适用于android和iOS目标呢?
当前的build.gradle.kts如下所示:
plugins {
kotlin("multiplatform")
id("com.squareup.sqldelight")
id("kotlinx-serialization")
id("com.android.library")
}
android {
...
}
sqldelight {
database("Database") {
packageName = "foo.bar
schemaOutputDirectory = file("src/foo
}
}
kotlin {
// Targets
val android = android()
val iosX64 = iosX64()
val jvm = jvm()
val linuxX64 = linuxX64()
val windows = mingwX64()
...
sourceSets {
val commonMain by getting {
dependencies {
implementation(kotlin("stdlib"))
//implementation("com.squareup.sqldelight:runtime:${rootProject.ext["sqldelightVersion"]}")
}
}
...
}因为:plugins { id("com.squareup.sqldelight"),sqldelight运行时自动添加到linux和windows的依赖中。
谢谢并致以最良好的问候
发布于 2020-01-10 20:23:24
Plangrid为mingwX64支持维护了他们自己的sqldelight分支。在本机上,驱动程序称为SQLiter (https://github.com/touchlab/SQLiter)。它有mingwX64支持。我不知道如何在Linux上连接sqlite,但是如果你能在SQLiter中添加Linux支持,你就可以发布一个支持所有这些平台的Sqldelight分支。我编写并维护了SQLiter,所以我可以帮上忙。
或者,我认为你需要有不同的模块来避免插件所做的事情,或者维护你自己的sqldelight插件分支。
https://stackoverflow.com/questions/59677825
复制相似问题