import java.io.FileInputStream import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.konan.properties.Properties plugins { alias(libs.plugins.android) alias(libs.plugins.kotlinAndroid) alias(libs.plugins.ksp) base } base { archivesName.set("calculator") } val keystorePropertiesFile: File = rootProject.file("keystore.properties") val keystoreProperties = Properties() if (keystorePropertiesFile.exists()) { keystoreProperties.load(FileInputStream(keystorePropertiesFile)) } android { compileSdk = project.libs.versions.app.build.compileSDKVersion.get().toInt() defaultConfig { applicationId = libs.versions.app.version.appId.get() minSdk = project.libs.versions.app.build.minimumSDK.get().toInt() targetSdk = project.libs.versions.app.build.targetSDK.get().toInt() versionName = project.libs.versions.app.version.versionName.get() versionCode = project.libs.versions.app.version.versionCode.get().toInt() ksp { arg("room.schemaLocation", "$projectDir/schemas") } } signingConfigs { if (keystorePropertiesFile.exists()) { register("release") { keyAlias = keystoreProperties.getProperty("keyAlias") keyPassword = keystoreProperties.getProperty("keyPassword") storeFile = file(keystoreProperties.getProperty("storeFile")) storePassword = keystoreProperties.getProperty("storePassword") } } } buildTypes { debug { applicationIdSuffix = ".debug" } release { isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) if (keystorePropertiesFile.exists()) { signingConfig = signingConfigs.getByName("release") } } } buildFeatures { viewBinding = true compose = true buildConfig = true } composeOptions { kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() } flavorDimensions.add("variants") productFlavors { register("core") register("fdroid") register("prepaid") } compileOptions { val currentJavaVersionFromLibs = JavaVersion.valueOf(libs.versions.app.build.javaVersion.get().toString()) sourceCompatibility = currentJavaVersionFromLibs targetCompatibility = currentJavaVersionFromLibs } tasks.withType { kotlinOptions.jvmTarget = project.libs.versions.app.build.kotlinJVMTarget.get() kotlinOptions.freeCompilerArgs = listOf( "-opt-in=kotlin.RequiresOptIn", "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api", "-opt-in=androidx.compose.material.ExperimentalMaterialApi", "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi", "-Xcontext-receivers" ) } sourceSets { getByName("main").java.srcDirs("src/main/kotlin") } lint { checkReleaseBuilds = false abortOnError = false } namespace = "com.simplemobiletools.calculator" } dependencies { implementation(libs.simple.tools.commons) implementation(libs.auto.fit.text.view) implementation(libs.exp4j) implementation(libs.bundles.lifecycle) implementation(libs.bundles.compose) debugImplementation(libs.bundles.compose.preview) implementation(libs.bundles.room) ksp(libs.androidx.room.compiler) }