mirror of
https://github.com/dz0ny/meshcore-sar.git
synced 2026-08-11 08:20:36 +00:00
100 lines
3.1 KiB
Kotlin
100 lines
3.1 KiB
Kotlin
import java.util.Properties
|
|
import java.io.FileInputStream
|
|
|
|
plugins {
|
|
id("com.android.application")
|
|
id("kotlin-android")
|
|
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
|
|
id("dev.flutter.flutter-gradle-plugin")
|
|
}
|
|
|
|
// Load keystore properties from key.properties file
|
|
val keystorePropertiesFile = rootProject.file("key.properties")
|
|
val keystoreProperties = Properties()
|
|
if (keystorePropertiesFile.exists()) {
|
|
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
|
|
}
|
|
|
|
fun resolveSigningValue(propertyKey: String, envKey: String): String? {
|
|
val envValue = System.getenv(envKey)?.takeIf { it.isNotBlank() }
|
|
if (envValue != null) {
|
|
return envValue
|
|
}
|
|
return (keystoreProperties[propertyKey] as? String)?.takeIf { it.isNotBlank() }
|
|
}
|
|
|
|
val releaseKeyAlias = resolveSigningValue("keyAlias", "ANDROID_KEY_ALIAS")
|
|
val releaseKeyPassword = resolveSigningValue("keyPassword", "ANDROID_KEY_PASSWORD")
|
|
val releaseStorePassword = resolveSigningValue("storePassword", "ANDROID_STORE_PASSWORD")
|
|
val releaseStoreFilePath = resolveSigningValue("storeFile", "ANDROID_STORE_FILE")
|
|
val hasReleaseSigning =
|
|
releaseKeyAlias != null &&
|
|
releaseKeyPassword != null &&
|
|
releaseStorePassword != null &&
|
|
releaseStoreFilePath != null
|
|
|
|
android {
|
|
namespace = "com.meshcore.sar.meshcore_sar_app"
|
|
compileSdk = flutter.compileSdkVersion
|
|
ndkVersion = flutter.ndkVersion
|
|
|
|
// Enable BuildConfig generation
|
|
buildFeatures {
|
|
buildConfig = true
|
|
}
|
|
|
|
compileOptions {
|
|
isCoreLibraryDesugaringEnabled = true
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_17.toString()
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId = "com.meshcore.sar.meshcore_sar_app"
|
|
minSdk = flutter.minSdkVersion
|
|
targetSdk = flutter.targetSdkVersion
|
|
versionCode = flutter.versionCode
|
|
versionName = flutter.versionName
|
|
|
|
// Inject commit hash from environment variable (set by GitHub Actions)
|
|
// Falls back to "dev" for local development builds
|
|
val commitHash = System.getenv("COMMIT_HASH") ?: "dev"
|
|
buildConfigField("String", "COMMIT_HASH", "\"$commitHash\"")
|
|
}
|
|
|
|
signingConfigs {
|
|
if (hasReleaseSigning) {
|
|
create("release") {
|
|
keyAlias = releaseKeyAlias
|
|
keyPassword = releaseKeyPassword
|
|
storeFile = file(releaseStoreFilePath!!)
|
|
storePassword = releaseStorePassword
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
signingConfig =
|
|
if (hasReleaseSigning) {
|
|
signingConfigs.getByName("release")
|
|
} else {
|
|
// Keep CI release builds working even when private keystore isn't provided.
|
|
signingConfigs.getByName("debug")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
flutter {
|
|
source = "../.."
|
|
}
|
|
|
|
dependencies {
|
|
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
|
}
|