过去,我们正在为移动设备开发一个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的依赖项中。感谢你并致以真诚的问候
最佳答案
Plangrid为mingwX64支持维护自己的sqldelight分支。在本机上,驱动程序称为SQLiter(https://github.com/touchlab/SQLiter)。那有mingwX64支持。我不知道如何在Linux上与sqlite链接,但是如果您可以将Linux支持添加到SQLiter,则可以发布支持所有这些平台的Sqldelight分支。我编写并维护了SQLiter,因此可以提供帮助。
另外,我认为您需要使用不同的模块来避免插件在做什么,或者维护自己的sqldelight插件。
关于gradle - 如何在带有Android,iOS和不支持的目标(例如mingwX64)的kotlin跨平台项目中设置sqldelight?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59677825/