mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 10:46:53 -04:00
109 lines
2.9 KiB
Plaintext
109 lines
2.9 KiB
Plaintext
import plugin.KiwixConfigurationPlugin
|
|
|
|
plugins {
|
|
android
|
|
id("com.github.triplet.play") version Versions.com_github_triplet_play_gradle_plugin
|
|
}
|
|
plugins.apply(KiwixConfigurationPlugin::class)
|
|
|
|
apply(from = rootProject.file("jacoco.gradle"))
|
|
|
|
ext {
|
|
set("versionMajor", 3)
|
|
set("versionMinor", 6)
|
|
set("versionPatch", 0)
|
|
}
|
|
|
|
fun generateVersionName() = "${ext["versionMajor"]}.${ext["versionMinor"]}.${ext["versionPatch"]}"
|
|
|
|
/*
|
|
* max version code: 21-0-0-00-00-00
|
|
* our template : UU-D-A-ZZ-YY-XX
|
|
* where:
|
|
* X = patch version
|
|
* Y = minor version
|
|
* Z = major version (+ 20 to distinguish from previous, non semantic, versions of the app)
|
|
* A = number representing ABI split
|
|
* D = number representing density split
|
|
* U = unused
|
|
*/
|
|
|
|
fun generateVersionCode() =
|
|
20 * 10000 +
|
|
ext["versionMajor"] as Int * 10000 +
|
|
ext["versionMinor"] as Int * 100 +
|
|
ext["versionPatch"] as Int
|
|
|
|
val apkPrefix get() = System.getenv("TAG") ?: "dev"
|
|
|
|
android {
|
|
|
|
defaultConfig {
|
|
base.archivesBaseName = apkPrefix
|
|
resValue("string", "app_name", "Kiwix")
|
|
resValue("string", "app_search_string", "Search Kiwix")
|
|
versionCode = generateVersionCode()
|
|
versionName = generateVersionName()
|
|
manifestPlaceholders["permission"] = "android.permission.MANAGE_EXTERNAL_STORAGE"
|
|
}
|
|
lintOptions {
|
|
isCheckDependencies = true
|
|
}
|
|
|
|
buildTypes {
|
|
getByName("debug") {
|
|
multiDexKeepProguard = file("multidex-instrumentation-config.pro")
|
|
buildConfigField("boolean", "KIWIX_ERROR_ACTIVITY", "false")
|
|
buildConfigField("boolean", "IS_PLAYSTORE", "false")
|
|
}
|
|
|
|
getByName("release") {
|
|
buildConfigField("boolean", "KIWIX_ERROR_ACTIVITY", "true")
|
|
buildConfigField("boolean", "IS_PLAYSTORE", "false")
|
|
if (properties.containsKey("disableSigning")) {
|
|
signingConfig = null
|
|
}
|
|
}
|
|
create("playStore") {
|
|
initWith(getByName("release"))
|
|
setMatchingFallbacks("release")
|
|
buildConfigField("boolean", "IS_PLAYSTORE", "true")
|
|
manifestPlaceholders["permission"] = "android.permission.placeholder"
|
|
}
|
|
}
|
|
bundle {
|
|
language {
|
|
// This is disabled so that the App Bundle does NOT split the APK for each language.
|
|
// We're gonna use the same APK for all languages.
|
|
enableSplit = false
|
|
}
|
|
}
|
|
sourceSets {
|
|
getByName("androidTest") {
|
|
java.srcDirs("$rootDir/core/src/sharedTestFunctions/java")
|
|
}
|
|
}
|
|
}
|
|
|
|
play {
|
|
enabled.set(true)
|
|
serviceAccountCredentials.set(file("../google.json"))
|
|
track.set("alpha")
|
|
releaseStatus.set(com.github.triplet.gradle.androidpublisher.ReleaseStatus.DRAFT)
|
|
resolutionStrategy.set(com.github.triplet.gradle.androidpublisher.ResolutionStrategy.FAIL)
|
|
}
|
|
|
|
dependencies {
|
|
implementation(Libs.squidb)
|
|
}
|
|
task("generateVersionCodeAndName") {
|
|
val file = File("VERSION_INFO")
|
|
if (!file.exists()) file.createNewFile()
|
|
file.printWriter().use {
|
|
it.print(
|
|
"${generateVersionName()}\n" +
|
|
"7${generateVersionCode()}"
|
|
)
|
|
}
|
|
}
|