mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-12 10:03:53 +02:00
162 lines
4.4 KiB
Groovy
162 lines
4.4 KiB
Groovy
apply plugin: 'com.android.application'
|
|
|
|
android {
|
|
/*******************************************************
|
|
* The following variables:
|
|
* - androidBuildToolsVersion,
|
|
* - androidCompileSdkVersion
|
|
* - qt5AndroidDir - holds the path to qt android files
|
|
* needed to build any Qt application
|
|
* on Android.
|
|
*
|
|
* are defined in gradle.properties file. This file is
|
|
* updated by QtCreator and androiddeployqt tools.
|
|
* Changing them manually might break the compilation!
|
|
*******************************************************/
|
|
|
|
ndkVersion '25.2.9519653'
|
|
|
|
// Extract native libraries from the APK
|
|
packagingOptions.jniLibs.useLegacyPackaging true
|
|
|
|
defaultConfig {
|
|
applicationId "is.xyz.vcmi"
|
|
|
|
compileSdk = androidCompileSdkVersion.takeAfter("-") as Integer // has "android-" prepended
|
|
minSdk = qtMinSdkVersion as Integer
|
|
targetSdk = qtTargetSdkVersion as Integer // ANDROID_TARGET_SDK_VERSION in the CMake project
|
|
|
|
versionCode 1600
|
|
versionName "1.6.0"
|
|
|
|
setProperty("archivesBaseName", "vcmi")
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
// Qt requires these to be in the android project root
|
|
manifest.srcFile '../AndroidManifest.xml'
|
|
jniLibs.srcDirs = ['../libs']
|
|
|
|
java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java']
|
|
aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl']
|
|
res.srcDirs = [qt5AndroidDir + '/res', 'src/main/res', '../res']
|
|
}
|
|
}
|
|
|
|
signingConfigs {
|
|
releaseSigning
|
|
dailySigning
|
|
LoadSigningConfig("releaseSigning")
|
|
LoadSigningConfig("dailySigning")
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
debuggable true
|
|
applicationIdSuffix '.debug'
|
|
manifestPlaceholders = [
|
|
applicationLabel: 'VCMI debug',
|
|
]
|
|
ndk {
|
|
debugSymbolLevel 'full'
|
|
}
|
|
}
|
|
release {
|
|
minifyEnabled false
|
|
zipAlignEnabled true
|
|
applicationIdSuffix = project.findProperty('applicationIdSuffix')
|
|
signingConfig = signingConfigs[project.findProperty('signingConfig') ?: 'releaseSigning']
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
manifestPlaceholders = [
|
|
applicationLabel: project.findProperty('applicationLabel') ?: 'VCMI',
|
|
]
|
|
ndk {
|
|
debugSymbolLevel 'full'
|
|
}
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.compilerArgs += ["-Xlint:deprecation"]
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
// Do not compress Qt binary resources file
|
|
aaptOptions {
|
|
noCompress 'rcc'
|
|
}
|
|
}
|
|
|
|
def CommandOutput(final cmd, final arguments, final cwd) {
|
|
try {
|
|
new ByteArrayOutputStream().withStream { final os ->
|
|
exec {
|
|
executable cmd
|
|
args arguments
|
|
workingDir cwd
|
|
standardOutput os
|
|
}
|
|
return os.toString().trim()
|
|
}
|
|
}
|
|
catch (final Exception ex) {
|
|
print("Broken: " + cmd + " " + arguments + " in " + cwd + " :: " + ex.toString())
|
|
return ""
|
|
}
|
|
}
|
|
|
|
def SigningPropertiesPath(final basePath, final signingConfigKey) {
|
|
return file("${basePath}/${signingConfigKey}.properties")
|
|
}
|
|
|
|
def SigningKeystorePath(final basePath, final keystoreFileName) {
|
|
return file("${basePath}/${keystoreFileName}")
|
|
}
|
|
|
|
def LoadSigningConfig(final signingConfigKey) {
|
|
final def props = new Properties()
|
|
final def propFile = SigningPropertiesPath(signingRoot, signingConfigKey)
|
|
|
|
def signingConfig = android.signingConfigs.getAt(signingConfigKey)
|
|
|
|
if (propFile.canRead()) {
|
|
props.load(new FileInputStream(propFile))
|
|
|
|
if (props != null
|
|
&& props.containsKey('STORE_FILE')
|
|
&& props.containsKey('KEY_ALIAS')) {
|
|
|
|
signingConfig.storeFile = SigningKeystorePath(signingRoot, props['STORE_FILE'])
|
|
signingConfig.storePassword = props['STORE_PASSWORD']
|
|
signingConfig.keyAlias = props['KEY_ALIAS']
|
|
|
|
if(props.containsKey('STORE_PASSWORD'))
|
|
signingConfig.storePassword = props['STORE_PASSWORD']
|
|
else
|
|
signingConfig.storePassword = System.getenv("ANDROID_STORE_PASSWORD")
|
|
|
|
if(props.containsKey('KEY_PASSWORD'))
|
|
signingConfig.keyPassword = props['KEY_PASSWORD']
|
|
else
|
|
signingConfig.keyPassword = System.getenv("ANDROID_KEY_PASSWORD")
|
|
} else {
|
|
println("Some props from signing file are missing")
|
|
android.signingConfigs.putAt(signingConfigKey, null)
|
|
}
|
|
} else {
|
|
println("file with signing properties is missing")
|
|
android.signingConfigs.putAt(signingConfigKey, null)
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation fileTree(dir: '../libs', include: ['*.jar', '*.aar'])
|
|
implementation 'androidx.annotation:annotation:1.7.1'
|
|
implementation 'androidx.documentfile:documentfile:1.0.1'
|
|
}
|