aboutsummaryrefslogtreecommitdiff
path: root/kvision-modules/kvision-server-ktor/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'kvision-modules/kvision-server-ktor/build.gradle.kts')
-rw-r--r--kvision-modules/kvision-server-ktor/build.gradle.kts70
1 files changed, 70 insertions, 0 deletions
diff --git a/kvision-modules/kvision-server-ktor/build.gradle.kts b/kvision-modules/kvision-server-ktor/build.gradle.kts
new file mode 100644
index 00000000..e9825289
--- /dev/null
+++ b/kvision-modules/kvision-server-ktor/build.gradle.kts
@@ -0,0 +1,70 @@
+buildscript {
+ extra.set("production", (findProperty("prod") ?: findProperty("production") ?: "false") == "true")
+}
+
+plugins {
+ kotlin("multiplatform")
+ id("kotlinx-serialization")
+ id("maven-publish")
+}
+
+repositories()
+
+// Versions
+val kotlinVersion: String by System.getProperties()
+val serializationVersion: String by project
+val coroutinesVersion: String by project
+val ktorVersion: String by project
+val guiceVersion: String by project
+val jacksonModuleKotlinVersion: String by project
+
+kotlin {
+ kotlinJsTargets()
+ kotlinJvmTargets()
+ sourceSets {
+ val commonMain by getting {
+ dependencies {
+ implementation(kotlin("stdlib-common"))
+ api(project(":kvision-modules:kvision-common-annotations"))
+ api(project(":kvision-modules:kvision-common-types"))
+ api(project(":kvision-modules:kvision-common-remote"))
+ api(project(":kvision-modules:kvision-common-remote"))
+ api("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serializationVersion")
+ api("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutinesVersion")
+ }
+ }
+ val jsMain by getting {
+ dependencies {
+ implementation(kotlin("stdlib-js"))
+ api("org.jetbrains.kotlinx:kotlinx-serialization-runtime-js:$serializationVersion")
+ api("org.jetbrains.kotlinx:kotlinx-coroutines-core-js:$coroutinesVersion")
+ }
+ }
+ val jvmMain by getting {
+ dependsOn(commonMain)
+ dependencies {
+ implementation(kotlin("stdlib"))
+ implementation(kotlin("stdlib-jdk8"))
+ implementation(kotlin("reflect"))
+ api("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion")
+ api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
+ api("io.ktor:ktor-server-core:$ktorVersion")
+ api("io.ktor:ktor-jackson:$ktorVersion")
+ api("io.ktor:ktor-websockets:$ktorVersion")
+ api("com.google.inject:guice:$guiceVersion")
+ api("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonModuleKotlinVersion")
+ }
+ }
+ }
+}
+
+publishing {
+ publications.withType<MavenPublication> {
+ if (name == "kotlinMultiplatform") artifactId = "kvision-server-ktor"
+ pom {
+ defaultPom()
+ }
+ }
+}
+
+setupPublication()