build.gradle.kts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. kotlin {
  23. android("android") {
  24. publishAllLibraryVariants()
  25. project.android {
  26. compileSdkVersion(29)
  27. defaultConfig {
  28. minSdkVersion(15)
  29. }
  30. // sourceSets.filterIsInstance(com.android.build.gradle.api.AndroidSourceSet::class.java).forEach {
  31. // it.manifest.srcFile("src/androidMain/res/AndroidManifest.xml")
  32. // it.res.srcDirs(file("src/androidMain/res"))
  33. // }
  34. //(sourceSets["main"] as AndroidSourceSet).java.srcDirs(file("src/androidMain/kotlin"))
  35. }
  36. }
  37. jvm("jvm") {
  38. }
  39. sourceSets {
  40. all {
  41. languageSettings.enableLanguageFeature("InlineClasses")
  42. languageSettings.useExperimentalAnnotation("kotlin.Experimental")
  43. dependencies {
  44. api(project(":mirai-core"))
  45. api(kotlin("stdlib", kotlinVersion))
  46. api(kotlin("serialization", kotlinVersion))
  47. api("org.jetbrains.kotlinx:atomicfu:$atomicFuVersion")
  48. api(kotlinx("io", kotlinXIoVersion))
  49. api(kotlinx("coroutines-io", coroutinesIoVersion))
  50. api(kotlinx("coroutines-core", coroutinesVersion))
  51. }
  52. }
  53. commonMain {
  54. dependencies {
  55. }
  56. }
  57. commonTest {
  58. dependencies {
  59. api(kotlin("test-annotations-common"))
  60. api(kotlin("test-common"))
  61. }
  62. }
  63. val androidMain by getting {
  64. dependencies {
  65. }
  66. }
  67. val androidTest by getting {
  68. dependencies {
  69. api(kotlin("test", kotlinVersion))
  70. api(kotlin("test-junit", kotlinVersion))
  71. api(kotlin("test-annotations-common"))
  72. api(kotlin("test-common"))
  73. }
  74. }
  75. val jvmMain by getting {
  76. dependencies {
  77. }
  78. }
  79. val jvmTest by getting {
  80. dependencies {
  81. api(kotlin("test", kotlinVersion))
  82. api(kotlin("test-junit", kotlinVersion))
  83. implementation("org.pcap4j:pcap4j-distribution:1.8.2")
  84. //runtimeOnly(files("build/classes/kotlin/jvm/test")) // classpath is not properly set by IDE
  85. }
  86. }
  87. }
  88. }