build.gradle.kts 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. // kotlinAndroid()
  35. // kotlinKapt()
  36. // androidLibrary()
  37. // hilt()
  38. // ksp()
  39. // mainAppPlugin()
  40. }
  41. android {
  42. namespace = "org.mjdev.tvlib"
  43. compileSdk = projectCompileSdk
  44. defaultConfig {
  45. minSdk = projectMinSdk
  46. testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
  47. consumerProguardFiles("consumer-rules.pro")
  48. }
  49. buildTypes {
  50. debug {
  51. isMinifyEnabled = false
  52. proguardFiles(
  53. getDefaultProguardFile("proguard-android-optimize.txt"),
  54. "proguard-rules.pro"
  55. )
  56. }
  57. release {
  58. isMinifyEnabled = false // todo
  59. proguardFiles(
  60. getDefaultProguardFile("proguard-android-optimize.txt"),
  61. "proguard-rules.pro"
  62. )
  63. }
  64. }
  65. buildFeatures {
  66. compose = true
  67. }
  68. compileOptions {
  69. sourceCompatibility = javaVersion
  70. targetCompatibility = javaVersion
  71. }
  72. kotlinOptions {
  73. jvmTarget = javaVersion.toString()
  74. }
  75. buildFeatures {
  76. compose = true
  77. buildConfig = true
  78. }
  79. composeOptions {
  80. kotlinCompilerExtensionVersion = kotlinCompilerExtVersion
  81. }
  82. packaging {
  83. with(resources.excludes) {
  84. add("/META-INF/{AL2.0,LGPL2.1}")
  85. add("META-INF/")
  86. add("okhttp3/")
  87. add("kotlin/")
  88. add("org/")
  89. add(".properties")
  90. add(".bin")
  91. }
  92. }
  93. lint {
  94. checkReleaseBuilds = false
  95. }
  96. hilt {
  97. enableAggregatingTask = true
  98. }
  99. kapt {
  100. correctErrorTypes = true
  101. }
  102. tasks {
  103. dokkaGfm {
  104. outputDirectory.set(File(projectDir, "../wiki/documentation/"))
  105. }
  106. }
  107. }
  108. dependencies {
  109. baseDependencies()
  110. composeDependencies()
  111. okHttpDependencies()
  112. retrofitDependencies()
  113. moshiDependencies()
  114. sandwichDependencies()
  115. glideDependencies()
  116. oauthDependencies()
  117. timberDependencies()
  118. daggerDependencies()
  119. exoPlayerDependencies()
  120. testDependencies()
  121. encryptDependencies()
  122. permissionsDependencies()
  123. anotherDependencies()
  124. }