import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.jetbrains.kotlin.android) alias(libs.plugins.kotlinx.serialization) alias(libs.plugins.jetbrains.kotlin.compose) id("kotlin-parcelize") } val localProperties = Properties().apply { val localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { localPropertiesFile.inputStream().use { fis -> load(fis) } } } android { // signingConfigs { // create("release") { // keyAlias = localProperties.getProperty("keyAlias") // keyPassword = localProperties.getProperty("keyPassword") // storeFile = file(localProperties.getProperty("storeFile")) // storePassword = localProperties.getProperty("storePassword") // } // // } buildFeatures { buildConfig = true } namespace = "com.hereliesaz.graffitixr" compileSdk = 36 defaultConfig { applicationId = "com.hereliesaz.graffitixr" minSdk = 26 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } multiDexEnabled = true ndk { abiFilters.add("arm64-v8a") } externalNativeBuild { cmake { arguments += "-DANDROID_STL=c++_shared" } } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlin { compilerOptions { jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17) } } buildFeatures { compose = true buildConfig = true prefab = true } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } buildToolsVersion = "36.0.0" ndkVersion = "26.1.10909125" externalNativeBuild { cmake { path = file("CMakeLists.txt") } } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.lifecycle.runtime.compose) 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.material.icons.extended) // ViewModel, Navigation, Coroutines, Coil implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.navigation.compose) implementation(libs.kotlinx.coroutines.android) implementation(libs.kotlinx.coroutines.play.services) implementation(libs.coil.compose) // ARCore implementation(libs.arcore.client) // CameraX implementation(libs.androidx.camera.core) implementation(libs.androidx.camera.camera2) implementation(libs.androidx.camera.lifecycle) implementation(libs.androidx.camera.view) // AndroidXR implementation(libs.google.accompanist.permissions) // AzNavRail implementation(libs.az.nav.rail) // Background Remover implementation(libs.auto.background.remover) // ML Kit implementation(libs.segmentation.selfie) // OpenCV implementation(libs.opencv) // Serialization implementation(libs.kotlinx.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) // Example: 'org.opencv:opencv-android:4.9.0' }