build.gradle.kts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import org.mjdev.gradle.dependency.anotherDependencies
  2. import org.mjdev.gradle.dependency.baseDependencies
  3. import org.mjdev.gradle.dependency.composeDependencies
  4. import org.mjdev.gradle.dependency.daggerDependencies
  5. import org.mjdev.gradle.dependency.encryptDependencies
  6. import org.mjdev.gradle.dependency.exoPlayerDependencies
  7. import org.mjdev.gradle.dependency.glideDependencies
  8. import org.mjdev.gradle.dependency.moshiDependencies
  9. import org.mjdev.gradle.dependency.oauthDependencies
  10. import org.mjdev.gradle.dependency.okHttpDependencies
  11. import org.mjdev.gradle.dependency.permissionsDependencies
  12. import org.mjdev.gradle.dependency.retrofitDependencies
  13. import org.mjdev.gradle.dependency.sandwichDependencies
  14. import org.mjdev.gradle.dependency.testDependencies
  15. import org.mjdev.gradle.dependency.timberDependencies
  16. import org.mjdev.gradle.plugin.javaVersion
  17. import org.mjdev.gradle.plugin.kotlinCompilerExtVersion
  18. import org.mjdev.gradle.plugin.projectCompileSdk
  19. import org.mjdev.gradle.plugin.projectMinSdk
  20. /*
  21. * Copyright (c) Milan Jurkulák 2023.
  22. * Contact:
  23. * e: mimoccc@gmail.com
  24. * e: mj@mjdev.org
  25. * w: https://mjdev.org
  26. */
  27. plugins {
  28. kotlin("android")
  29. kotlin("kapt")
  30. id("com.android.library")
  31. id("com.google.dagger.hilt.android")
  32. id("dagger.hilt.android.plugin")
  33. id("com.google.devtools.ksp")
  34. id("io.objectbox")
  35. // kotlinAndroid()
  36. // kotlinKapt()
  37. // androidLibrary()
  38. // hilt()
  39. // ksp()
  40. // mainAppPlugin()
  41. }
  42. android {
  43. namespace = "org.mjdev.tvlib"
  44. compileSdk = projectCompileSdk
  45. defaultConfig {
  46. minSdk = projectMinSdk
  47. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  48. consumerProguardFiles("consumer-rules.pro")
  49. }
  50. buildTypes {
  51. debug {
  52. isMinifyEnabled = false
  53. proguardFiles(
  54. getDefaultProguardFile("proguard-android-optimize.txt"),
  55. "proguard-rules.pro"
  56. )
  57. }
  58. release {
  59. isMinifyEnabled = false // todo
  60. proguardFiles(
  61. getDefaultProguardFile("proguard-android-optimize.txt"),
  62. "proguard-rules.pro"
  63. )
  64. }
  65. }
  66. buildFeatures {
  67. compose = true
  68. }
  69. compileOptions {
  70. sourceCompatibility = javaVersion
  71. targetCompatibility = javaVersion
  72. }
  73. kotlinOptions {
  74. jvmTarget = javaVersion.toString()
  75. }
  76. buildFeatures {
  77. compose = true
  78. buildConfig = true
  79. }
  80. composeOptions {
  81. kotlinCompilerExtensionVersion = kotlinCompilerExtVersion
  82. }
  83. packaging {
  84. with(resources.excludes) {
  85. add("/META-INF/{AL2.0,LGPL2.1}")
  86. add("META-INF/")
  87. add("okhttp3/")
  88. add("kotlin/")
  89. add("org/")
  90. add(".properties")
  91. add(".bin")
  92. }
  93. }
  94. lint {
  95. checkReleaseBuilds = false
  96. }
  97. hilt {
  98. enableAggregatingTask = true
  99. }
  100. kapt {
  101. correctErrorTypes = true
  102. }
  103. tasks {
  104. dokkaGfm {
  105. outputDirectory.set(File(projectDir, "../wiki/documentation/"))
  106. }
  107. }
  108. }
  109. dependencies {
  110. baseDependencies()
  111. timberDependencies()
  112. daggerDependencies()
  113. composeDependencies()
  114. okHttpDependencies()
  115. retrofitDependencies()
  116. moshiDependencies()
  117. sandwichDependencies()
  118. glideDependencies()
  119. oauthDependencies()
  120. exoPlayerDependencies()
  121. encryptDependencies()
  122. permissionsDependencies()
  123. // imageIODependencies()
  124. anotherDependencies()
  125. testDependencies()
  126. }