Files
agentik/server/build.gradle.kts

58 lines
2.4 KiB
Kotlin

plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.kotlin.serialization)
}
kotlin {
jvmToolchain(21)
// "Все возможные цели сборки": jvm + весь натив. Зеркалит набор :proto.
// Никаких блокеров нет: ktor-server-{core,sse,cio,content-negotiation} имеет
// опубликованные linuxX64/macosX64/macosArm64/iosX64/iosArm64/iosSimulatorArm64/
// linuxArm64/mingwX64 варианты; :proto уже собирается под все эти таргеты.
jvm()
macosX64()
macosArm64()
iosX64()
iosArm64()
iosSimulatorArm64()
linuxX64()
linuxArm64()
mingwX64()
sourceSets {
commonMain.dependencies {
implementation(project(":proto"))
// Read-only storage handles, которые HTTP-фасад выставляет наружу
// под {path}/journal/* и {path}/outbox/*. Типы JournalStore/
// OutboxStore фигурируют в сигнатурах internal-функций
// journalRoutes/outboxRoutes, поэтому нужны в compile classpath.
// Транзитивные api-висимости :proto (:journal-api, :outbox-api)
// не доходят до :server из-за implementation(:proto), поэтому
// объявляем напрямую.
implementation(project(":journal-api"))
implementation(project(":outbox-api"))
// Ktor (без engine — engine подключает потребитель, см. :standalone).
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
// Commons
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
}
commonTest.dependencies {
implementation(libs.kotlinx.coroutines.core)
implementation(kotlin("test"))
implementation(libs.ktor.server.test.host)
implementation(libs.ktor.server.cio)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
implementation(project(":journal-inmemory"))
}
}
}