135 lines
4.5 KiB
Kotlin
135 lines
4.5 KiB
Kotlin
plugins {
|
|
alias(libs.plugins.androidApplication)
|
|
kotlin("android")
|
|
kotlin("kapt")
|
|
alias(libs.plugins.daggerHilt)
|
|
alias(libs.plugins.ksp)
|
|
alias(libs.plugins.navigationSafeArgs)
|
|
id("com.google.android.gms.oss-licenses-plugin")
|
|
}
|
|
|
|
if (file("google-services.json").exists()) {
|
|
apply(plugin = libs.plugins.firebaseCrashlytics.get().pluginId)
|
|
apply(plugin = libs.plugins.googleServices.get().pluginId)
|
|
}
|
|
|
|
android {
|
|
namespace = "com.sergiobelda.androidtodometer"
|
|
|
|
compileSdk = libs.versions.androidCompileSdk.get().toInt()
|
|
|
|
defaultConfig {
|
|
applicationId = "com.sergiobelda.androidtodometer"
|
|
minSdk = libs.versions.androidMinSdk.get().toInt()
|
|
targetSdk = libs.versions.androidTargetSdk.get().toInt()
|
|
versionCode = 23
|
|
versionName = "1.4.1"
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
kotlin {
|
|
jvmToolchain(17)
|
|
}
|
|
buildTypes {
|
|
getByName("release") {
|
|
isShrinkResources = true
|
|
isMinifyEnabled = true
|
|
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
|
}
|
|
getByName("debug") {
|
|
extra["enableCrashlytics"] = false
|
|
}
|
|
}
|
|
buildFeatures {
|
|
viewBinding = true
|
|
dataBinding = true
|
|
}
|
|
testOptions {
|
|
unitTests {
|
|
isIncludeAndroidResources = true
|
|
isReturnDefaultValues = true
|
|
}
|
|
}
|
|
}
|
|
|
|
val ktlint: Configuration by configurations.creating
|
|
|
|
dependencies {
|
|
|
|
ktlint(libs.ktlint) {
|
|
attributes {
|
|
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
|
|
}
|
|
}
|
|
|
|
implementation(fileTree("libs") { include(listOf("*.jar")) })
|
|
|
|
implementation(libs.kotlin.stdlib)
|
|
implementation(libs.androidx.appcompat)
|
|
implementation(libs.androidx.core.coreKtx)
|
|
implementation(libs.androidx.core.coreSplashScreen)
|
|
implementation(libs.androidx.constraintlayout)
|
|
implementation(libs.androidx.datastore.preferences)
|
|
implementation(libs.androidx.fragment.fragmentKtx)
|
|
implementation(libs.androidx.lifecycle.livedataKtx)
|
|
implementation(libs.androidx.lifecycle.runtimeKtx)
|
|
implementation(libs.androidx.lifecycle.viewmodelKtx)
|
|
implementation(libs.androidx.navigation.navigationFragmentKtx)
|
|
implementation(libs.androidx.navigation.navigationUiKtx)
|
|
implementation(libs.androidx.paging.pagingRuntimeKtx)
|
|
implementation(libs.androidx.room.roomKtx)
|
|
implementation(libs.androidx.room.roomRuntime)
|
|
ksp(libs.androidx.room.roomCompiler)
|
|
implementation(libs.google.dagger.hiltAndroid)
|
|
implementation(platform(libs.google.firebase.firebaseBom))
|
|
implementation(libs.google.firebase.firebaseAnalyticsKtx)
|
|
implementation(libs.google.firebase.firebaseCrashlyticsKtx)
|
|
kapt(libs.google.dagger.hiltAndroidCompiler)
|
|
implementation(libs.google.material)
|
|
implementation(libs.google.playServicesOssLicenses)
|
|
implementation(libs.timber)
|
|
implementation(libs.companion)
|
|
|
|
testImplementation(libs.androidx.test.coreKtx)
|
|
testImplementation(libs.androidx.test.ext.junitKtx)
|
|
testImplementation(libs.google.dagger.hiltAndroidTesting)
|
|
kaptTest(libs.google.dagger.hiltAndroidCompiler)
|
|
testImplementation(libs.junit)
|
|
testImplementation(libs.mockk.mockk)
|
|
testImplementation(libs.robolectric.robolectric)
|
|
|
|
androidTestImplementation(libs.androidx.arch.coreTesting)
|
|
androidTestImplementation(libs.androidx.room.roomTesting)
|
|
androidTestImplementation(libs.androidx.test.ext.junit)
|
|
androidTestImplementation(libs.androidx.test.espresso.espressoCore)
|
|
androidTestImplementation(libs.google.dagger.hiltAndroidTesting)
|
|
kaptAndroidTest(libs.google.dagger.hiltAndroidCompiler)
|
|
}
|
|
|
|
val outputDir = "${project.buildDir}/reports/ktlint/"
|
|
val inputFiles = project.fileTree(mapOf("dir" to "src", "include" to "**/*.kt"))
|
|
|
|
val ktlintCheck by tasks.creating(JavaExec::class) {
|
|
inputs.files(inputFiles)
|
|
outputs.dir(outputDir)
|
|
|
|
description = "Check Kotlin code style."
|
|
classpath = ktlint
|
|
mainClass.set("com.pinterest.ktlint.Main")
|
|
args = listOf("src/**/*.kt")
|
|
}
|
|
|
|
val ktlintFormat by tasks.creating(JavaExec::class) {
|
|
inputs.files(inputFiles)
|
|
outputs.dir(outputDir)
|
|
|
|
description = "Fix Kotlin code style deviations."
|
|
classpath = ktlint
|
|
mainClass.set("com.pinterest.ktlint.Main")
|
|
args = listOf("-F", "src/**/*.kt")
|
|
}
|