forked from lavalink-devs/Lavalink
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
93 lines (81 loc) · 2.25 KB
/
build.gradle.kts
File metadata and controls
93 lines (81 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import com.vanniktech.maven.publish.JavadocJar
import com.vanniktech.maven.publish.KotlinMultiplatform
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("org.jetbrains.dokka")
alias(libs.plugins.maven.publish.base)
}
val archivesBaseName = "protocol"
group = "dev.arbjerg.lavalink"
kotlin {
jvm {
compilations.all {
kotlinOptions {
jvmTarget = "17"
}
}
}
js(IR) {
nodejs()
browser()
compilations.all {
packageJson {
//language=RegExp
// npm doesn't support our versioning :(
val validVersion = """\d+\.\d+\.\d+""".toRegex()
if (!validVersion.matches(project.version.toString())) {
version = "4.0.0"
}
}
}
}
sourceSets {
all {
languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi")
}
commonMain {
dependencies {
api(libs.kotlinx.serialization.json)
api(libs.kotlinx.datetime)
}
}
commonTest {
dependencies {
api(kotlin("test-common"))
api(kotlin("test-annotations-common"))
}
}
named("jsTest") {
dependencies {
implementation(kotlin("test-js"))
}
}
named("jvmTest") {
dependencies {
implementation(kotlin("test-junit5"))
}
}
}
}
mavenPublishing {
configure(KotlinMultiplatform(JavadocJar.Dokka("dokkaHtml")))
pom {
name = "Lavalink Protocol"
description = "Protocol for Lavalink Client development"
}
}
tasks {
withType<KotlinJvmTest> {
useJUnitPlatform()
}
}
// Use system Node.Js on NixOS
if (System.getenv("NIX_PROFILES") != null) {
rootProject.plugins.withType<NodeJsRootPlugin> {
rootProject.the<NodeJsRootExtension>().download = false
}
}