build.gradle.kts 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. @file:Suppress("UNUSED_VARIABLE")
  2. plugins {
  3. kotlin("multiplatform")
  4. id("kotlinx-atomicfu")
  5. id("com.android.library")
  6. id("kotlinx-serialization")
  7. `maven-publish`
  8. id("com.jfrog.bintray") version "1.8.4-jetbrains-3" // DO NOT CHANGE THIS VERSION UNLESS YOU WANT TO WASTE YOUR TIME
  9. }
  10. apply(from = rootProject.file("gradle/publish.gradle"))
  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 kotlinx(id: String, version: String) = "org.jetbrains.kotlinx:kotlinx-$id:$version"
  20. fun ktor(id: String, version: String) = "io.ktor:ktor-$id:$version"
  21. description = "QQ protocol library"
  22. version = rootProject.ext.get("mirai_version")!!.toString()
  23. kotlin {
  24. android("android") {
  25. publishAllLibraryVariants()
  26. project.android {
  27. compileSdkVersion(29)
  28. defaultConfig {
  29. minSdkVersion(15)
  30. }
  31. // sourceSets.filterIsInstance(com.android.build.gradle.api.AndroidSourceSet::class.java).forEach {
  32. // it.manifest.srcFile("src/androidMain/res/AndroidManifest.xml")
  33. // it.res.srcDirs(file("src/androidMain/res"))
  34. // }
  35. //(sourceSets["main"] as AndroidSourceSet).java.srcDirs(file("src/androidMain/kotlin"))
  36. }
  37. }
  38. jvm("jvm") {
  39. }
  40. sourceSets {
  41. all {
  42. languageSettings.enableLanguageFeature("InlineClasses")
  43. languageSettings.useExperimentalAnnotation("kotlin.Experimental")
  44. dependencies {
  45. api(project(":mirai-core"))
  46. api(kotlin("stdlib", kotlinVersion))
  47. api(kotlin("serialization", kotlinVersion))
  48. api("org.jetbrains.kotlinx:atomicfu:$atomicFuVersion")
  49. api(kotlinx("io", kotlinXIoVersion))
  50. api(kotlinx("coroutines-io", coroutinesIoVersion))
  51. api(kotlinx("coroutines-core", coroutinesVersion))
  52. }
  53. }
  54. commonMain {
  55. dependencies {
  56. }
  57. }
  58. commonTest {
  59. dependencies {
  60. api(kotlin("test-annotations-common"))
  61. api(kotlin("test-common"))
  62. }
  63. }
  64. val androidMain by getting {
  65. dependencies {
  66. }
  67. }
  68. val androidTest by getting {
  69. dependencies {
  70. api(kotlin("test", kotlinVersion))
  71. api(kotlin("test-junit", kotlinVersion))
  72. api(kotlin("test-annotations-common"))
  73. api(kotlin("test-common"))
  74. }
  75. }
  76. val jvmMain by getting {
  77. dependencies {
  78. }
  79. }
  80. val jvmTest by getting {
  81. dependencies {
  82. api(kotlin("test", kotlinVersion))
  83. api(kotlin("test-junit", kotlinVersion))
  84. implementation("org.pcap4j:pcap4j-distribution:1.8.2")
  85. runtimeOnly(files("build/classes/kotlin/jvm/test")) // classpath is not properly set by IDE
  86. }
  87. }
  88. }
  89. }