plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlin.serialization) } // KMP-реализация EventStore поверх ksqlite (https://github.com/caffeine-mgn/ksqlite). // // Цели сборки: // - jvm() — основная, тесты гоняются здесь (in-memory DB без файла) // - linuxX64() / mingwX64() — smoke-проверка что KMP реально KMP // - androidNative* — НЕ включены, нужны NDK headers иначе gradle падает. // Когда дойдём до Android-агента — добавим. // // Apple targets (macos*, ios*, tvos*, watchos*) невозможно собрать на Linux — // Kotlin Multiplatform plugin auto-disables их, так что даже не пытаемся. kotlin { jvmToolchain(21) jvm() linuxX64() mingwX64() sourceSets { commonMain.dependencies { // :message-store-api / :working-memory-api / :message-log-api объявлены // как api-зависимости здесь, в commonMain — без этого commonMain // не скомпилируется (KsqliteConversationStore, KsqliteMessageStore // и т.д. используют их типы в commonMain). У них самих есть Apple // targets (macosX64/Arm64, iosX64/Arm64/SimulatorArm64, linuxArm64), // так что KMP-метаданные корректно резолвятся для всех таргетов. // ksqlite ещё не опубликован в Maven Central — только в локальном // caffeine-репо. Версия пока 0.1.0-SNAPSHOT (CI fallback из README). implementation("pw.binom.db:ksqlite:0.1.1-SNAPSHOT") implementation(libs.kotlinx.serialization.json) api(project(":message-store-api")) api(project(":message-log-api")) api(project(":working-memory-api")) } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } } }