2
0

build.gradle.kts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import com.android.build.gradle.api.AndroidSourceSet
  2. plugins {
  3. id("kotlinx-atomicfu")
  4. kotlin("multiplatform")
  5. id("com.android.library")
  6. //id("kotlin-android-extensions")
  7. }
  8. val kotlinVersion = rootProject.ext["kotlin_version"].toString()
  9. val atomicFuVersion = rootProject.ext["atomicfu_version"].toString()
  10. val coroutinesVersion = rootProject.ext["coroutines_version"].toString()
  11. val kotlinXIoVersion = rootProject.ext["kotlinxio_version"].toString()
  12. val coroutinesIoVersion = rootProject.ext["coroutinesio_version"].toString()
  13. val klockVersion = rootProject.ext["klock_version"].toString()
  14. val ktorVersion = rootProject.ext["ktor_version"].toString()
  15. kotlin {
  16. android("android") {
  17. project.plugins.apply("com.android.library")
  18. project.android {
  19. compileSdkVersion(29)
  20. buildToolsVersion("29.0.2")
  21. defaultConfig {
  22. minSdkVersion(15)
  23. targetSdkVersion(29)
  24. versionCode = 1
  25. versionName = "1.0"
  26. // testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
  27. }
  28. buildTypes {
  29. getByName("release") {
  30. isMinifyEnabled = false
  31. //proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
  32. }
  33. }
  34. sourceSets.filterIsInstance(com.android.build.gradle.api.AndroidSourceSet::class.java).forEach {
  35. it.manifest.srcFile("src/androidMain/res/AndroidManifest.xml")
  36. it.res.srcDirs(file("src/androidMain/res"))
  37. }
  38. (sourceSets["main"] as AndroidSourceSet).java.srcDirs(file("src/androidMain/kotlin"))
  39. }
  40. }
  41. jvm("jvm")
  42. val commonMain = sourceSets["commonMain"].apply {
  43. dependencies {
  44. api("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
  45. implementation("com.soywiz.korlibs.klock:klock:$klockVersion")
  46. implementation("io.ktor:ktor-http-cio:$ktorVersion")
  47. implementation("io.ktor:ktor-http:$ktorVersion")
  48. implementation("io.ktor:ktor-client-core-jvm:$ktorVersion")
  49. implementation("io.ktor:ktor-client-cio:$ktorVersion")
  50. implementation("io.ktor:ktor-client-core:$ktorVersion")
  51. implementation("io.ktor:ktor-network:$ktorVersion")
  52. }
  53. }
  54. sourceSets["androidMain"].apply {
  55. dependencies {
  56. dependsOn(commonMain)
  57. implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
  58. implementation("io.ktor:ktor-client-android:$ktorVersion")
  59. }
  60. languageSettings.enableLanguageFeature("InlineClasses")
  61. }
  62. sourceSets["jvmMain"].apply {
  63. dependencies {
  64. dependsOn(commonMain)
  65. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
  66. implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7")
  67. implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
  68. implementation("io.ktor:ktor-client-core-jvm:$ktorVersion")
  69. }
  70. }
  71. sourceSets["jvmTest"].apply {
  72. kotlin.setSrcDirs(listOf("src/$name/kotlin"))
  73. }
  74. sourceSets.all {
  75. languageSettings.enableLanguageFeature("InlineClasses")
  76. dependencies {
  77. implementation("org.jetbrains.kotlin:kotlin-stdlib")
  78. implementation("org.jetbrains.kotlinx:atomicfu:$atomicFuVersion")
  79. implementation("org.jetbrains.kotlinx:kotlinx-io:$kotlinXIoVersion")
  80. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-io:$coroutinesIoVersion")
  81. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
  82. }
  83. }
  84. }