import java.io.FileInputStream import java.util.Properties plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.compose) kotlin("plugin.serialization") version libs.versions.kotlin.get() } //As per: https://developer.android.com/studio/publish/app-signing.html#kts // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. val keystorePropertiesFile = System.getenv("KEYSTORE")?.let { File(it) } ?: rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. val keystoreProperties = Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.takeIf { keystorePropertiesFile.exists() } ?.load(FileInputStream(keystorePropertiesFile)) android { namespace = "org.openeel.demolaunchableapp" compileSdk { version = release(37) { //minorApiLevel = 1 } } signingConfigs { println("Keystore exists: ${keystorePropertiesFile.exists()}") //See https://developer.android.com/build/building-cmdline#gradle_signing if(keystorePropertiesFile.exists()) { create("release") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } } defaultConfig { applicationId = "org.openeel.demolaunchableapp" minSdk = 24 targetSdk = 36 versionCode = 1 versionName = "1.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { optimization { enable = false } if(keystorePropertiesFile.exists()) { signingConfig = signingConfigs.getByName("release") } } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } buildFeatures { compose = true } } kotlin { compilerOptions { optIn.add("kotlin.time.ExperimentalTime") optIn.add("kotlin.uuid.ExperimentalUuidApi") } } dependencies { implementation(libs.openeel.xapi.core) implementation(libs.openeel.xapi.ipc.client) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.material3.adaptive.navigation.suite) implementation(libs.androidx.compose.ui) implementation(libs.androidx.compose.ui.graphics) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.navigation.compose) testImplementation(libs.junit) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.compose.ui.test.junit4) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(libs.androidx.junit) debugImplementation(libs.androidx.compose.ui.test.manifest) debugImplementation(libs.androidx.compose.ui.tooling) }