plugins { id(ThunderbirdPlugins.App.androidCompose) alias(libs.plugins.dependency.guard) id("thunderbird.app.version.info") id("thunderbird.quality.badging") } val testCoverageEnabled: Boolean by extra if (testCoverageEnabled) { apply(plugin = "jacoco") } android { namespace = "com.fsck.k9" defaultConfig { applicationId = "com.fsck.k9" testApplicationId = "com.fsck.k9.tests" versionCode = 39029 versionName = "13.0" buildConfigField("String", "CLIENT_INFO_APP_NAME", "\"K-9 Mail\"") } androidResources { // Keep in sync with the resource string array "supported_languages" localeFilters += listOf( "ar", "be", "bg", "ca", "co", "cs", "cy", "da", "de", "el", "en", "en-rGB", "eo", "es", "et", "eu", "fa", "fi", "fr", "fy", "ga", "gl", "hr", "hu", "in", "is", "it", "iw", "ja", "ko", "lt", "lv", "nb", "nl", "nn", "pl", "pt-rBR", "pt-rPT", "ro", "ru", "sk", "sl", "sq", "sr", "sv", "tr", "uk", "vi", "zh-rCN", "zh-rTW", ) } signingConfigs { createSigningConfig(project, SigningType.K9_RELEASE, isUpload = false) } buildTypes { release { signingConfig = signingConfigs.getByType(SigningType.K9_RELEASE) isMinifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", ) } debug { applicationIdSuffix = ".debug" enableUnitTestCoverage = testCoverageEnabled enableAndroidTestCoverage = testCoverageEnabled isMinifyEnabled = false } } flavorDimensions += listOf("app") productFlavors { create("foss") { dimension = "app" buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"foss\"") } create("full") { dimension = "app" buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"full\"") } } packaging { jniLibs { excludes += listOf("kotlin/**") } resources { excludes += listOf( "META-INF/*.kotlin_module", "META-INF/*.version", "kotlin/**", "DebugProbesKt.bin", ) } } } dependencies { implementation(projects.appCommon) implementation(projects.core.ui.compose.theme2.k9mail) implementation(projects.core.ui.legacy.theme2.k9mail) implementation(projects.feature.launcher) implementation(projects.feature.mail.message.list) implementation(projects.legacy.core) implementation(projects.legacy.ui.legacy) implementation(projects.core.featureflag) implementation(projects.feature.account.settings.impl) "fossImplementation"(projects.feature.funding.noop) "fullImplementation"(projects.feature.funding.googleplay) implementation(projects.feature.migration.launcher.noop) implementation(projects.feature.onboarding.migration.noop) implementation(projects.feature.telemetry.noop) implementation(projects.feature.widget.messageList) implementation(projects.feature.widget.messageListGlance) implementation(projects.feature.widget.shortcut) implementation(projects.feature.widget.unread) implementation(libs.androidx.work.runtime) implementation(projects.feature.autodiscovery.api) debugImplementation(projects.backend.demo) debugImplementation(projects.feature.autodiscovery.demo) // Required for DependencyInjectionTest testImplementation(projects.feature.account.api) testImplementation(projects.feature.account.common) testImplementation(projects.plugins.openpgpApiLib.openpgpApi) testImplementation(libs.appauth) } dependencyGuard { configuration("fossReleaseRuntimeClasspath") configuration("fullReleaseRuntimeClasspath") }