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 { api(project(":message-store-api")) api(project(":storage-bundle")) api(project(":working-memory-api")) // ksqlite ещё не опубликован в Maven Central — только в локальном // caffeine-репо. Версия пока 0.1.0-SNAPSHOT (CI fallback из README). implementation("pw.binom.db:ksqlite:0.1.0") implementation(libs.kotlinx.serialization.json) } jvmMain.dependencies { // Логирование — JVM-only, для native targets в kotlin-logging нет KMP-артефакта. implementation("io.github.microutils:kotlin-logging-jvm:3.0.5") } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) } } }