FossifyGallery/app/build.gradle.kts

142 lines
4.1 KiB
Text

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.konan.properties.Properties
import java.io.FileInputStream
plugins {
alias(libs.plugins.android)
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.ksp)
alias(libs.plugins.detekt)
}
val keystorePropertiesFile: File = rootProject.file("keystore.properties")
val keystoreProperties = Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}
android {
compileSdk = project.libs.versions.app.build.compileSDKVersion.get().toInt()
defaultConfig {
applicationId = libs.versions.app.version.appId.get()
minSdk = project.libs.versions.app.build.minimumSDK.get().toInt()
targetSdk = project.libs.versions.app.build.targetSDK.get().toInt()
versionName = project.libs.versions.app.version.versionName.get()
versionCode = project.libs.versions.app.version.versionCode.get().toInt()
setProperty("archivesBaseName", "gallery-$versionCode")
}
signingConfigs {
if (keystorePropertiesFile.exists()) {
register("release") {
keyAlias = keystoreProperties.getProperty("keyAlias")
keyPassword = keystoreProperties.getProperty("keyPassword")
storeFile = file(keystoreProperties.getProperty("storeFile"))
storePassword = keystoreProperties.getProperty("storePassword")
}
}
}
buildFeatures {
viewBinding = true
buildConfig = true
}
buildTypes {
debug {
applicationIdSuffix = ".debug"
}
release {
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
if (keystorePropertiesFile.exists()) {
signingConfig = signingConfigs.getByName("release")
}
}
}
flavorDimensions.add("licensing")
productFlavors {
register("foss")
register("prepaid")
}
sourceSets {
getByName("main").java.srcDirs("src/main/kotlin")
}
compileOptions {
val currentJavaVersionFromLibs = JavaVersion.valueOf(libs.versions.app.build.javaVersion.get())
sourceCompatibility = currentJavaVersionFromLibs
targetCompatibility = currentJavaVersionFromLibs
}
dependenciesInfo {
includeInApk = false
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = project.libs.versions.app.build.kotlinJVMTarget.get()
}
namespace = libs.versions.app.version.appId.get()
lint {
checkReleaseBuilds = false
abortOnError = true
warningsAsErrors = true
baseline = file("lint-baseline.xml")
}
packaging {
resources {
excludes += "META-INF/library_release.kotlin_module"
}
}
bundle {
language {
@Suppress("UnstableApiUsage")
enableSplit = false
}
}
}
detekt {
baseline = file("detekt-baseline.xml")
}
dependencies {
implementation(libs.fossify.commons)
implementation(libs.android.image.cropper)
implementation(libs.exif)
implementation(libs.android.gif.drawable)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.media3.exoplayer)
implementation(libs.sanselan)
implementation(libs.androidphotofilters)
implementation(libs.androidsvg.aar)
implementation(libs.gestureviews)
implementation(libs.subsamplingscaleimageview)
implementation(libs.androidx.swiperefreshlayout)
implementation(libs.awebp)
implementation(libs.apng)
implementation(libs.avif.integration)
implementation(libs.jxl.integration)
implementation(libs.okio)
implementation(libs.picasso) {
exclude(group = "com.squareup.okhttp3", module = "okhttp")
}
compileOnly(libs.okhttp)
ksp(libs.glide.compiler)
implementation(libs.zjupure.webpdecoder)
implementation(libs.bundles.room)
ksp(libs.androidx.room.compiler)
}