From b6341eebfe1a505c0667691233a38873dba606f2 Mon Sep 17 00:00:00 2001 From: Nicolas Fella Date: Sun, 24 Oct 2021 22:49:33 +0200 Subject: [PATCH] Pass version information to AndroidManifest Fixes #463 --- CMakeLists.txt | 4 ++ android/AndroidManifest.xml | 4 +- android/build.gradle | 96 +++++++++++++++++++++++++++++++++++++ android/version.gradle.in | 6 +++ 4 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 android/build.gradle create mode 100644 android/version.gradle.in diff --git a/CMakeLists.txt b/CMakeLists.txt index aa8bb823e..a3ae42575 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,6 +114,10 @@ find_package(QCoro REQUIRED) qcoro_enable_coroutines() +if(ANDROID) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/android/version.gradle.in ${CMAKE_BINARY_DIR}/version.gradle) +endif() + install(FILES org.kde.neochat.desktop DESTINATION ${KDE_INSTALL_APPDIR}) install(FILES org.kde.neochat.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) install(FILES org.kde.neochat.svg DESTINATION ${KDE_INSTALL_FULL_ICONDIR}/hicolor/scalable/apps) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index ad12ba280..5d02c96c2 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -6,8 +6,8 @@ --> + SPDX-FileCopyrightText: 2019 Nicolas Fella + SPDX-FileCopyrightText: 2020 Gabriel Souza Franco + SPDX-License-Identifier: BSD-3-Clause +*/ + +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.6.4' + } +} + +repositories { + google() + jcenter() +} + + +apply plugin: 'com.android.application' +apply from: '../version.gradle' +def timestamp = (int)(new Date().getTime()/1000) + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) +} + +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! + *******************************************************/ + + compileSdkVersion androidCompileSdkVersion.toInteger() + + buildToolsVersion androidBuildToolsVersion + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] + aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] + res.srcDirs = [qt5AndroidDir + '/res', 'res'] + resources.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] + } + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + lintOptions { + abortOnError false + } + + defaultConfig { + minSdkVersion qtMinSdkVersion + targetSdkVersion qtTargetSdkVersion + manifestPlaceholders = [versionName: projectVersionFull, versionCode: timestamp] + } + + packagingOptions { + exclude 'lib/*/*RemoteObjects*' + exclude 'lib/*/*StateMachine*' + exclude 'lib/*/*_imageformats_qico_*' + exclude 'lib/*/*_imageformats_qicns_*' + exclude 'lib/*/*_imageformats_qtga_*' + exclude 'lib/*/*_imageformats_qtiff_*' + exclude 'lib/*/*_qmltooling_*' + } + + aaptOptions { + // different syntax than above + // see https://android.googlesource.com/platform/frameworks/base/+/refs/heads/pie-release/tools/aapt2/util/Files.h#90 + ignoreAssetsPattern '!ECM:!aclocal:!doc:!gtk-doc:!iso-codes:!man:!mime:!pkgconfig:!qlogging-categories5:!iso_15924.mo:!iso_3166-2.mo:!iso_3166-3.mo:!iso_4217.mo:!iso_639-2.mo:!iso_639-3.mo:!iso_639-5.mo:!kcodecs5_qt.qm:!kde5_xml_mimetypes.qm' + } + + +} diff --git a/android/version.gradle.in b/android/version.gradle.in new file mode 100644 index 000000000..fcd087f57 --- /dev/null +++ b/android/version.gradle.in @@ -0,0 +1,6 @@ +// SPDX-FileCopyrightText: 2021 Volker Krause +// SPDX-License-Identifier: BSD-3-Clause + +ext { + projectVersionFull = "@PROJECT_VERSION@" +}