Update android packaging for Qt6 qmake handling with arch individual aab
This commit is contained in:
parent
12b11fca1a
commit
fb42ea6c04
@ -5,6 +5,27 @@ properties.load(project.rootProject.file("nymeaapp.properties").newDataInputStre
|
|||||||
def nymeaAppRoot = properties.getProperty('nymeaAppRoot')
|
def nymeaAppRoot = properties.getProperty('nymeaAppRoot')
|
||||||
def useFirebase = properties.getProperty('useFirebase')
|
def useFirebase = properties.getProperty('useFirebase')
|
||||||
|
|
||||||
|
def nymeaVersionLines = file("${nymeaAppRoot}/version.txt").readLines().collect { it.trim() }.findAll { it }
|
||||||
|
def nymeaAppVersionName = nymeaVersionLines ? nymeaVersionLines[0] : "0.0.0"
|
||||||
|
def nymeaAppBaseVersionCode = nymeaVersionLines.size() > 1 ? nymeaVersionLines[1].toInteger() : 1
|
||||||
|
|
||||||
|
// Use ABI-aware version codes per Qt's legacy single-ABI Play Store guidance.
|
||||||
|
def abiVersionPrefixes = [
|
||||||
|
"armeabi-v7a": "132",
|
||||||
|
"arm64-v8a" : "164",
|
||||||
|
"x86" : "232",
|
||||||
|
"x86_64" : "264"
|
||||||
|
]
|
||||||
|
|
||||||
|
def qtTargetAbiListValue = project.hasProperty('qtTargetAbiList') ? qtTargetAbiList : ""
|
||||||
|
def targetAbiList = qtTargetAbiListValue.split(",").collect { it.trim() }.findAll { it }
|
||||||
|
def singleTargetAbi = targetAbiList.size() == 1 ? targetAbiList[0] : null
|
||||||
|
def computeAbiVersionCode = { abi, baseCode ->
|
||||||
|
def prefix = abiVersionPrefixes[abi]
|
||||||
|
return prefix ? Integer.parseInt("${prefix}${baseCode}") : baseCode
|
||||||
|
}
|
||||||
|
def nymeaDefaultVersionCode = computeAbiVersionCode(singleTargetAbi, nymeaAppBaseVersionCode)
|
||||||
|
|
||||||
println "Building Android package"
|
println "Building Android package"
|
||||||
println "Package source root ${nymeaAppRoot}"
|
println "Package source root ${nymeaAppRoot}"
|
||||||
|
|
||||||
@ -127,6 +148,21 @@ android {
|
|||||||
resConfigs "en", "de", "ko", "it", "nl", "es"
|
resConfigs "en", "de", "ko", "it", "nl", "es"
|
||||||
minSdkVersion = 23
|
minSdkVersion = 23
|
||||||
targetSdkVersion = 35
|
targetSdkVersion = 35
|
||||||
ndk.abiFilters = qtTargetAbiList.split(",")
|
ndk.abiFilters = targetAbiList
|
||||||
|
versionName nymeaAppVersionName
|
||||||
|
versionCode nymeaDefaultVersionCode
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
androidComponents {
|
||||||
|
onVariants(selector().all(), { variant ->
|
||||||
|
variant.outputs.forEach { output ->
|
||||||
|
def abiFilter = output.filters.find { it.filterType == com.android.build.api.variant.FilterConfiguration.FilterType.ABI }?.identifier
|
||||||
|
if (abiFilter != null) {
|
||||||
|
output.versionCode.set(computeAbiVersionCode(abiFilter, nymeaAppBaseVersionCode))
|
||||||
|
} else if (singleTargetAbi != null) {
|
||||||
|
output.versionCode.set(nymeaDefaultVersionCode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user