import com.android.build.api.dsl.ApplicationExtension import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.hilt.android) alias(libs.plugins.ksp) alias(libs.plugins.kotlin.compose) alias(libs.plugins.google.services) alias(libs.plugins.firebase.crashlytics) } fun gitCommitCount(): String { return runCatching { val process = ProcessBuilder("git", "rev-list", "--count", "HEAD") .redirectErrorStream(true) .start() val output = process.inputStream.bufferedReader().use { it.readText().trim() } if (process.waitFor() == 0 && output.isNotBlank()) output else "local" }.getOrElse { "local" } } val debugBuildId = gitCommitCount() extensions.configure { namespace = "org.db3.airmq" compileSdk { version = release(36) { minorApiLevel = 1 } } defaultConfig { applicationId = "org.db3.airmq" minSdk = 24 targetSdk = 36 versionCode = 1 versionName = "3.0.0-pre" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { getByName("debug") { versionNameSuffix = "_debug_$debugBuildId" } release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } buildFeatures { compose = true } } dependencies { // AirMQ SDK implementation(project(":sdk")) // OSM implementation(libs.osmdroid.android) // Android implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.runtime.compose) implementation(libs.androidx.lifecycle.viewmodel.ktx) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.foundation) implementation(libs.androidx.navigation.compose) implementation(libs.hilt.android) implementation(libs.androidx.hilt.navigation.compose) implementation(libs.androidx.credentials) implementation(libs.androidx.credentials.play.services.auth) implementation(libs.googleid) ksp(libs.hilt.compiler) // Tests testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.compose.ui.test.junit4) debugImplementation(libs.androidx.compose.ui.tooling) debugImplementation(libs.androidx.compose.ui.test.manifest) }