[versions]
kotlinApi = "2.0"
kotlinLanguage = "2.0"
kotlin = "2.0.21"
jvmTarget = "17"
openrndr = { require = "[0.4.2, 0.5.0)" }
kotlinxCoroutines = "1.9.0"
kotlinLogging = "7.0.0"
kotlinxSerialization = "1.7.3"
kotest = "5.9.1"
dokka = "1.7.10"
nebulaRelease = "18.0.7"
gradleNexusPublish = "2.0.0"
boofcv = "1.1.6"
kluent = "1.73"
junitJupiter = "5.11.2"
slf4j = "2.0.16"
libfreenect = "0.5.7-1.5.9"
librealsense = "2.53.1-1.5.9"
gson = "2.11.0"
antlr = "4.13.2"
antlrKotlin = "1.0.1"
tensorflow = "0.5.0"
minim = "2.2.2"
netty = "4.1.114.Final"
rabbitcontrol = "0.3.39"
zxing = "3.5.3"
ktor = "2.3.12"
jgit = "7.0.0.202409031743-r"
javaosc = "0.9"
jsoup = "1.18.1"

[libraries]
kotlin-logging = { group = "io.github.oshai", name = "kotlin-logging", version.ref = "kotlinLogging" }
kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" }
kotlin-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerialization" }
kotlin-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerialization" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" }
kotlin-scriptingJvm = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm", version.ref = "kotlin" }
kotlin-scriptingJvmHost = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm-host", version.ref = "kotlin" }
kotlin-scriptingJSR223 = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jsr223", version.ref = "kotlin" }
kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
kotlin-serialization-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin" }
dokka-gradle-plugin = { group = "org.jetbrains.dokka", name = "dokka-gradle-plugin", version.ref = "dokka" }

kotest-assertions = { group = "io.kotest", name = "kotest-assertions-core", version.ref = "kotest" }
kotest-runner = { group = "io.kotest", name = "kotest-runner-junit5", version.ref = "kotest" }
kotest-framework-engine = { group = "io.kotest", name = "kotest-framework-engine", version.ref = "kotest" }


openrndr-application = { group = "org.openrndr", name = "openrndr-application", version.ref = "openrndr" }
openrndr-extensions = { group = "org.openrndr", name = "openrndr-extensions", version.ref = "openrndr" }
openrndr-math = { group = "org.openrndr", name = "openrndr-math", version.ref = "openrndr" }
openrndr-utils = { group = "org.openrndr", name = "openrndr-utils", version.ref = "openrndr" }
openrndr-shape = { group = "org.openrndr", name = "openrndr-shape", version.ref = "openrndr" }
openrndr-draw = { group = "org.openrndr", name = "openrndr-draw", version.ref = "openrndr" }
openrndr-event = { group = "org.openrndr", name = "openrndr-event", version.ref = "openrndr" }
openrndr-filter = { group = "org.openrndr", name = "openrndr-filter", version.ref = "openrndr" }
openrndr-dialogs = { group = "org.openrndr", name = "openrndr-dialogs", version.ref = "openrndr" }
openrndr-ffmpeg = { group = "org.openrndr", name = "openrndr-ffmpeg", version.ref = "openrndr" }
openrndr-gl3-core = { group = "org.openrndr", name = "openrndr-gl3", version.ref = "openrndr" }
openrndr-gl3-natives-macos-arm64 = { group = "org.openrndr", name = "openrndr-gl3-natives-macos-arm64", version.ref = "openrndr" }

tensorflow = { group = "org.tensorflow", name = "tensorflow-core-api", version.ref = "tensorflow" }
boofcv = { group = "org.boofcv", name = "boofcv-core", version.ref = "boofcv" }
libfreenect = { group = "org.bytedeco", name = "libfreenect", version.ref = "libfreenect" }
librealsense = { group = "org.bytedeco", name = "librealsense2", version.ref = "librealsense" }
minim = { group = "net.compartmental.code", name = "minim", version.ref = "minim" }
netty-all = { group = "io.netty", name = "netty-all", version.ref = "netty" }
rabbitcontrol-rcp = { group = "cc.rabbitcontrol", name = "rcp", version.ref = "rabbitcontrol" }
zxing-core = { group = "com.google.zxing", name = "core", version.ref = "zxing" }
ktor-server-core = { group = "io.ktor", name = "ktor-server-core", version.ref = "ktor" }
ktor-server-netty = { group = "io.ktor", name = "ktor-server-netty", version.ref = "ktor" }
jgit = { group = "org.eclipse.jgit", name = "org.eclipse.jgit", version.ref = "jgit" }
javaosc-core = { group = "com.illposed.osc", name = "javaosc-core", version.ref = "javaosc" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
antlr-core = { group = "org.antlr", name = "antlr4", version.ref = "antlr" }
antlr-runtime = { group = "org.antlr", name = "antlr4-runtime", version.ref = "antlr" }
antlr-kotlin-runtime = { group = "com.strumenta", name = "antlr-kotlin-runtime", version.ref = "antlrKotlin" }
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }

jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junitJupiter" }
jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junitJupiter" }
kluent = { group = "org.amshove.kluent", name = "kluent", version.ref = "kluent" }
slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" }

[plugins]
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
nebula-release = { id = "nebula.release", version.ref = "nebulaRelease" }
gradle-nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "gradleNexusPublish" }
kotest-multiplatform = { id = "io.kotest.multiplatform", version.ref = "kotest" }
antlr-kotlin = { id = "com.strumenta.antlr-kotlin", version.ref = "antlrKotlin" }

[bundles]
jupiter = ["jupiter-api", "jupiter-engine"]
