| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- 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 1620
- versionName "1.6.2"
- 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',
- applicationVariant: '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',
- applicationVariant: project.findProperty('applicationVariant') ?: '',
- ]
- 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'
- }
|