build.gradle.kts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. @file:Suppress("UNUSED_VARIABLE")
  2. import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
  3. plugins {
  4. id("kotlinx-atomicfu")
  5. kotlin("jvm")
  6. id("kotlinx-serialization")
  7. }
  8. group = "net.mamoe.mirai"
  9. version = rootProject.ext["mirai_version"].toString()
  10. description = "Mirai Http Api"
  11. val kotlinVersion: String by rootProject.ext
  12. val atomicFuVersion: String by rootProject.ext
  13. val coroutinesVersion: String by rootProject.ext
  14. val kotlinXIoVersion: String by rootProject.ext
  15. val coroutinesIoVersion: String by rootProject.ext
  16. val klockVersion: String by rootProject.ext
  17. val ktorVersion: String by rootProject.ext
  18. val serializationVersion: String by rootProject.ext
  19. fun KotlinDependencyHandler.kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$version"
  20. fun KotlinDependencyHandler.ktor(id: String, version: String = ktorVersion) = "io.ktor:ktor-$id:$version"
  21. kotlin {
  22. sourceSets["main"].apply {
  23. dependencies {
  24. implementation(project(":mirai-core-timpc"))
  25. implementation(kotlin("stdlib-jdk8", kotlinVersion))
  26. implementation(kotlin("stdlib-jdk7", kotlinVersion))
  27. implementation(kotlin("reflect", kotlinVersion))
  28. implementation(ktor("server-cio"))
  29. implementation(kotlinx("io-jvm", kotlinXIoVersion))
  30. implementation(ktor("http-jvm"))
  31. }
  32. }
  33. sourceSets["test"].apply {
  34. dependencies {
  35. }
  36. kotlin.outputDir = file("build/classes/kotlin/jvm/test")
  37. kotlin.setSrcDirs(listOf("src/$name/kotlin"))
  38. }
  39. sourceSets.all {
  40. languageSettings.enableLanguageFeature("InlineClasses")
  41. languageSettings.useExperimentalAnnotation("kotlin.Experimental")
  42. dependencies {
  43. implementation(kotlin("stdlib", kotlinVersion))
  44. implementation(kotlin("serialization", kotlinVersion))
  45. implementation("org.jetbrains.kotlinx:atomicfu:$atomicFuVersion")
  46. implementation(kotlinx("io", kotlinXIoVersion))
  47. implementation(kotlinx("coroutines-io", coroutinesIoVersion))
  48. implementation(kotlinx("coroutines-core", coroutinesVersion))
  49. implementation(kotlinx("serialization-runtime", serializationVersion))
  50. implementation(ktor("server-core"))
  51. implementation(ktor("http"))
  52. }
  53. }
  54. }