plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.kotlin.serialization) } // Референсная реализация ТЗ `SYNC-SYSTEM.md` — журнал событий с монотонным // курсором + материализация (`Chat`/`Message` с `last_seq`), единый протокол // для клиента и сервера. KMP, всё в commonMain/commonTest где это возможно; // ksqlite-реализация — в commonMain (ksqlite публикует KMP-варианты для всех // десктоп-целей), интеграционные тесты под реальной SQLite — в jvmTest. // // Цели сборки: // - commonMain/commonTest содержат pure-Kotlin типы, интерфейсы, in-memory // реализации и спец-тесты (SyncSpec). Работают на всех 9 KMP-целях. // - jvmMain + jvmTest дополнительно содержат ksqlite-бэкенд (он же публикуется // для linuxX64/mingwX64, но запускать с реальной SQLite-схемой удобнее под JVM). // // Почему нет iOS/macOS целей: ksqlite не публикует варианты для них. Если // когда-нибудь понадобится, цели добавляются одной строкой. kotlin { jvmToolchain(21) jvm() linuxX64() mingwX64() sourceSets { commonMain.dependencies { implementation(libs.ksqlite) implementation(libs.kotlinx.serialization.json) implementation(libs.kotlinx.coroutines.core) } commonTest.dependencies { implementation(kotlin("test")) implementation(libs.kotlinx.coroutines.test) // для файлового персистентного теста — KMP-обёртка вокруг fs. implementation(libs.kotlinx.io.core) } } }