plugins { id("com.android.application") kotlin("android") kotlin("plugin.serialization") version "2.0.21" } android { compileSdk = 34 buildToolsVersion = "34.0.0" defaultConfig { applicationId = "helium314.keyboard" minSdk = 21 targetSdk = 34 versionCode = 2301 versionName = "2.3" ndk { abiFilters.clear() abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) } proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") } buildTypes { release { isMinifyEnabled = true isShrinkResources = false isDebuggable = false isJniDebuggable = false } create("nouserlib") { // same as release, but does not allow the user to provide a library isMinifyEnabled = true isShrinkResources = false isDebuggable = false isJniDebuggable = false } debug { isMinifyEnabled = true isJniDebuggable = false applicationIdSuffix = ".debug" } create("runTests") { // build variant for running tests on CI that skips tests known to fail isMinifyEnabled = true isJniDebuggable = false } base.archivesBaseName = "HeliBoard_" + defaultConfig.versionName } buildFeatures { viewBinding = true buildConfig = true } externalNativeBuild { ndkBuild { path = File("src/main/jni/Android.mk") } } ndkVersion = "26.2.11394342" packagingOptions { jniLibs { // shrinks APK by 3 MB, zipped size unchanged useLegacyPackaging = true } } testOptions { unitTests { isIncludeAndroidResources = true } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() } // see https://github.com/Helium314/HeliBoard/issues/477 dependenciesInfo { includeInApk = false includeInBundle = false } namespace = "helium314.keyboard.latin" lint { abortOnError = true } } dependencies { // androidx implementation("androidx.core:core-ktx:1.13.1") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.preference:preference:1.2.1") implementation("androidx.recyclerview:recyclerview:1.3.2") implementation("androidx.autofill:autofill:1.1.0") // kotlin implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0") // color picker for user-defined colors implementation("com.github.martin-stone:hsv-alpha-color-picker-android:3.1.0") // test testImplementation("junit:junit:4.13.2") testImplementation("org.mockito:mockito-core:5.15.2") testImplementation("org.robolectric:robolectric:4.12.1") testImplementation("androidx.test:runner:1.6.2") testImplementation("androidx.test:core:1.6.1") }