PNS/android/app/build.gradle.kts
2024-07-08 20:05:21 +03:00

103 lines
No EOL
3.2 KiB
Kotlin

plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.googleServices)
alias(libs.plugins.serialization)
}
// custom properties
val applicationIdArgument = project.findProperty("applicationId")?.toString()
val applicationVersionCodeArgument = project.findProperty("versionCode")?.toString()?.toIntOrNull()
val baseUrlArgument = System.getenv("PNS_BASE_URL") ?: "http://127.0.0.1:8080/"
android {
namespace = applicationIdArgument ?: "org.fnives.android.servernotifications"
compileSdk = 34
defaultConfig {
applicationId = applicationIdArgument ?: "org.fnives.android.servernotifications"
minSdk = 29
targetSdk = 34
versionCode = applicationVersionCodeArgument ?: 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
buildConfigField("String", "BASE_URL", "\"$baseUrlArgument\"")
}
signingConfigs {
with(maybeCreate("debug")) {
storeFile = file("debug.keystore")
storePassword = "android"
keyAlias = "androiddebugkey"
keyPassword = "android"
}
with(maybeCreate("release")) {
storeFile = file(System.getenv("PNS_KEYSTORE") ?: "debug.keystore")
keyAlias = System.getenv("PNS_KEY") ?: ""
keyPassword = System.getenv("PNS_KEY_PASS") ?: ""
storePassword = System.getenv("PNS_PASS") ?: ""
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose = true
buildConfig = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.1"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation(libs.androidx.fragment)
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.messaging)
implementation(libs.serialization.json)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.ui.test.junit4)
debugImplementation(libs.androidx.ui.tooling)
debugImplementation(libs.androidx.ui.test.manifest)
}