build.gradle.kts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. plugins {
  2. id("com.android.application")
  3. kotlin("android")
  4. kotlin("plugin.serialization")
  5. id("app.cash.sqldelight")
  6. id("org.sirekanyan.version-checker")
  7. }
  8. android {
  9. namespace = "org.sirekanyan.outline"
  10. compileSdk = 34
  11. defaultConfig {
  12. applicationId = "org.sirekanyan.outline"
  13. minSdk = 21
  14. targetSdk = 34
  15. versionCode = (property("appVersionCode") as String).toInt()
  16. versionName = property("appVersionName") as String
  17. setProperty("archivesBaseName", "$applicationId-$versionName-$versionCode")
  18. vectorDrawables {
  19. useSupportLibrary = true
  20. }
  21. }
  22. buildTypes {
  23. release {
  24. isMinifyEnabled = true
  25. isShrinkResources = true
  26. proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard.pro")
  27. if (findProperty("signingConfig") == "release") {
  28. signingConfig = signingConfigs.create("release") {
  29. storeFile(file(System.getenv("SIGNING_KEYSTORE_FILE")))
  30. storePassword(System.getenv("SIGNING_KEYSTORE_PASSWORD"))
  31. keyAlias(System.getenv("SIGNING_KEY_ALIAS"))
  32. keyPassword(System.getenv("SIGNING_KEY_PASSWORD"))
  33. }
  34. }
  35. }
  36. }
  37. compileOptions {
  38. sourceCompatibility = JavaVersion.VERSION_1_8
  39. targetCompatibility = JavaVersion.VERSION_1_8
  40. }
  41. kotlinOptions {
  42. jvmTarget = "1.8"
  43. allWarningsAsErrors = true
  44. }
  45. lint {
  46. warningsAsErrors = true
  47. }
  48. buildFeatures {
  49. compose = true
  50. }
  51. composeOptions {
  52. kotlinCompilerExtensionVersion = "1.5.1"
  53. }
  54. packaging {
  55. resources {
  56. excludes += "/META-INF/{AL2.0,LGPL2.1}"
  57. }
  58. }
  59. }
  60. dependencies {
  61. // compose
  62. implementation("androidx.activity:activity-compose:1.7.2")
  63. implementation("androidx.compose.material3:material3:1.1.1")
  64. // ktor
  65. implementation("io.ktor:ktor-client-cio:2.3.3")
  66. implementation("io.ktor:ktor-client-content-negotiation:2.3.3")
  67. implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.3")
  68. implementation("org.slf4j:slf4j-simple:2.0.7")
  69. // sqldelight
  70. implementation("app.cash.sqldelight:android-driver:2.0.0")
  71. implementation("app.cash.sqldelight:coroutines-extensions:2.0.0")
  72. }
  73. sqldelight {
  74. databases {
  75. create("OutlineDatabase") {
  76. packageName.set("org.sirekanyan.outline.db")
  77. }
  78. }
  79. }