From 15e864bc94334752c047766edcc60da6026d952d Mon Sep 17 00:00:00 2001 From: Kang Lin Date: Wed, 4 Dec 2024 12:49:33 +0800 Subject: [PATCH] CI: modify android.yml --- .github/workflows/android.yml | 24 +++-- FileBrowser/android/AndroidManifest.xml | 8 +- FileBrowser/android/build.gradle.bak | 83 ++++++++++++++++++ MimeTypeBrowser/android/AndroidManifest.xml | 53 +++++++++++ MimeTypeBrowser/android/build.gradle.bak | 83 ++++++++++++++++++ .../android/res/drawable-hdpi/icon.png | Bin 0 -> 669 bytes .../android/res/drawable-ldpi/icon.png | Bin 0 -> 275 bytes .../android/res/drawable-mdpi/icon.png | Bin 0 -> 435 bytes .../android/res/drawable-xhdpi/icon.png | Bin 0 -> 883 bytes .../android/res/drawable-xxhdpi/icon.png | Bin 0 -> 1525 bytes .../android/res/drawable-xxxhdpi/icon.png | Bin 0 -> 2108 bytes .../android/res/values-zh-rCN/strings.xml | 6 ++ .../android/res/values/strings.xml | 6 ++ build_android.sh | 18 ++++ deploy.sh | 1 + 15 files changed, 268 insertions(+), 14 deletions(-) create mode 100644 FileBrowser/android/build.gradle.bak create mode 100644 MimeTypeBrowser/android/AndroidManifest.xml create mode 100644 MimeTypeBrowser/android/build.gradle.bak create mode 100644 MimeTypeBrowser/android/res/drawable-hdpi/icon.png create mode 100644 MimeTypeBrowser/android/res/drawable-ldpi/icon.png create mode 100644 MimeTypeBrowser/android/res/drawable-mdpi/icon.png create mode 100644 MimeTypeBrowser/android/res/drawable-xhdpi/icon.png create mode 100644 MimeTypeBrowser/android/res/drawable-xxhdpi/icon.png create mode 100644 MimeTypeBrowser/android/res/drawable-xxxhdpi/icon.png create mode 100644 MimeTypeBrowser/android/res/values-zh-rCN/strings.xml create mode 100644 MimeTypeBrowser/android/res/values/strings.xml create mode 100755 build_android.sh diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e73611f3..810d09bc 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -16,7 +16,7 @@ jobs: matrix: BUILD_TYPE: [Release] qt_arch: [android_arm64_v8a, android_x86_64] - qt_version: [6.6.2] + qt_version: [6.8.1] include: - qt_arch: android_arm64_v8a VCPKG_TARGET_TRIPLET: arm-android @@ -32,15 +32,15 @@ jobs: env: artifact_name: build_android - STOREPASS: ${{secrets.STOREPASS}} + STOREPASS: ${{secrets.STOREPASS}} SOURCE_DIR: ${{github.workspace}}/.cache/source TOOSL_DIR: ${{github.workspace}}/.cache/tools INSTALL_DIR: ${{github.workspace}}/.cache/install RabbitCommon_VERSION: v2.2.6 VCPKGGITCOMMITID: 59aeb8fe8fe1c980de6bd5ba634cf21024522d81 ANDROID_ABI: ${{matrix.ANDROID_ABI}} - ANDROID_PLATFORM: android-28 - ANDROID_NATIVE_API_LEVEL: 28 + ANDROID_PLATFORM: android-35 + ANDROID_NATIVE_API_LEVEL: 35 qt_modules: 'qtscxml' # Map the job outputs to step outputs @@ -74,9 +74,9 @@ jobs: with: dir: '${{env.TOOSL_DIR}}' # optional version: '${{matrix.qt_version}}' - #host: 'linux' + host: 'linux' target: 'desktop' - arch: 'gcc_64' + arch: 'linux_gcc_64' set-env: false cache: true cache-key-prefix: cached_qt @@ -131,13 +131,19 @@ jobs: -DQT_HOST_PATH=${Qt6_DIR}/../gcc_64 \ -DQt6LinguistTools_DIR=${Qt6_DIR}/../gcc_64/lib/cmake/Qt6LinguistTools \ -DCMAKE_INSTALL_PREFIX=`pwd`/install \ + -DANDROID_PLATFORM=${{env.ANDROID_PLATFORM}} \ -DBUILD_TEST=OFF \ -DBUILD_APP=OFF cmake --build . --config ${{matrix.BUILD_TYPE}} --target all + echo "cmake --build . --config ${{matrix.BUILD_TYPE}} --target install" cmake --build . --config ${{matrix.BUILD_TYPE}} --target install 7z a RabbitCommon_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.zip ./install/* - APK_FILE=`find . -name "android-*.apk"` - cp $APK_FILE RabbitCommon_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.apk + cd build/FileBrowser + APK_FILE=`find . -name "android-*.apk" + cp $APK_FILE ${{github.workspace}}/FileBrowser_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.apk + cd ${{github.workspace}}/build/MimeTypeBrowser + APK_FILE=`find . -name "android-*.apk" + cp $APK_FILE ${{github.workspace}}/MimeTypeBrowser_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.apk - name: Update artifact if: ${{ matrix.BUILD_TYPE == 'Release' }} @@ -146,4 +152,4 @@ jobs: name: ${{ env.artifact_name }}_${{matrix.qt_version}}_${{matrix.qt_arch}} path: | ${{github.workspace}}/build/RabbitCommon_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.zip - ${{github.workspace}}/build/RabbitCommon_${{env.RabbitCommon_VERSION}}_${{matrix.qt_arch}}_qt${{matrix.qt_version}}_${{matrix.BUILD_TYPE}}.apk + ${{github.workspace}}/build/*.apk diff --git a/FileBrowser/android/AndroidManifest.xml b/FileBrowser/android/AndroidManifest.xml index 52255602..e89ee60f 100644 --- a/FileBrowser/android/AndroidManifest.xml +++ b/FileBrowser/android/AndroidManifest.xml @@ -4,10 +4,9 @@ android:installLocation="auto" android:versionCode="0" android:versionName="2.2.6"> - - - - + + + diff --git a/FileBrowser/android/build.gradle.bak b/FileBrowser/android/build.gradle.bak new file mode 100644 index 00000000..752a96eb --- /dev/null +++ b/FileBrowser/android/build.gradle.bak @@ -0,0 +1,83 @@ +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // https://developer.android.google.cn/build/releases/gradle-plugin?hl=zh-cn + classpath 'com.android.tools.build:gradle:8.2.2' + } +} + +repositories { + google() + mavenCentral() +} + +apply plugin: 'com.android.application' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) + implementation 'androidx.core:core:1.10.1' +} + +android { + /******************************************************* + * The following variables: + * - androidBuildToolsVersion, + * - androidCompileSdkVersion + * - qtAndroidDir - 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 + buildToolsVersion androidBuildToolsVersion + ndkVersion androidNdkVersion + + // Extract native libraries from the APK + packagingOptions.jniLibs.useLegacyPackaging true + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = [qtAndroidDir + '/src', 'src', 'java'] + aidl.srcDirs = [qtAndroidDir + '/src', 'src', 'aidl'] + res.srcDirs = [qtAndroidDir + '/res', 'res'] + resources.srcDirs = ['resources'] + renderscript.srcDirs = ['src'] + assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] + } + } + + tasks.withType(JavaCompile) { + options.incremental = true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + lintOptions { + abortOnError false + } + + // Do not compress Qt binary resources file + aaptOptions { + noCompress 'rcc' + } + + defaultConfig { + resConfig "en" + minSdkVersion qtMinSdkVersion + targetSdkVersion qtTargetSdkVersion + ndk.abiFilters = qtTargetAbiList.split(",") + } +} diff --git a/MimeTypeBrowser/android/AndroidManifest.xml b/MimeTypeBrowser/android/AndroidManifest.xml new file mode 100644 index 00000000..2fd918cc --- /dev/null +++ b/MimeTypeBrowser/android/AndroidManifest.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MimeTypeBrowser/android/build.gradle.bak b/MimeTypeBrowser/android/build.gradle.bak new file mode 100644 index 00000000..752a96eb --- /dev/null +++ b/MimeTypeBrowser/android/build.gradle.bak @@ -0,0 +1,83 @@ +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + // https://developer.android.google.cn/build/releases/gradle-plugin?hl=zh-cn + classpath 'com.android.tools.build:gradle:8.2.2' + } +} + +repositories { + google() + mavenCentral() +} + +apply plugin: 'com.android.application' + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) + implementation 'androidx.core:core:1.10.1' +} + +android { + /******************************************************* + * The following variables: + * - androidBuildToolsVersion, + * - androidCompileSdkVersion + * - qtAndroidDir - 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 + buildToolsVersion androidBuildToolsVersion + ndkVersion androidNdkVersion + + // Extract native libraries from the APK + packagingOptions.jniLibs.useLegacyPackaging true + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = [qtAndroidDir + '/src', 'src', 'java'] + aidl.srcDirs = [qtAndroidDir + '/src', 'src', 'aidl'] + res.srcDirs = [qtAndroidDir + '/res', 'res'] + resources.srcDirs = ['resources'] + renderscript.srcDirs = ['src'] + assets.srcDirs = ['assets'] + jniLibs.srcDirs = ['libs'] + } + } + + tasks.withType(JavaCompile) { + options.incremental = true + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + lintOptions { + abortOnError false + } + + // Do not compress Qt binary resources file + aaptOptions { + noCompress 'rcc' + } + + defaultConfig { + resConfig "en" + minSdkVersion qtMinSdkVersion + targetSdkVersion qtTargetSdkVersion + ndk.abiFilters = qtTargetAbiList.split(",") + } +} diff --git a/MimeTypeBrowser/android/res/drawable-hdpi/icon.png b/MimeTypeBrowser/android/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1a79c02a1a4197e4b813395aa8fcffd17db833a3 GIT binary patch literal 669 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!oCO|{#S9F5M?jcysy3fA0|S%4 zr;B4q#hkZu_GgPYO0>=Q?O+qCXUWy^Resdp(7R+KuUKb-Vw0=Z$Nmjx>l0JgatP_P zgou?*o8nivi4Oa0-gVc=sv zF1hz@TWOwD#ESdHHLPW?U$Z7WyZ`)eyrhFkl;;N5f_V!RESw5vKM2+qXVK@F#<`3$ zjWbVR&)Fw&f@=iMTv5J{jy^0o7PsXZBsO@At7^Jp6q`$X5 zyYzjUc+}QOWs~mg72N5}qCfdguu|~trj=DWZ=!c^+jG9I;0MPW^}lm-Rwc+wsFas! zcKEDYvMM&&Kl;L_jyskQA};OsN#QEm`qodqTu*4OJj1JM@qby%_Fjw$is!f%^|&~s z)jC)8;M`;1R&Klg_l(iqj1z0Re!1O`e(oRbShDSaKm~&hyC1{$2IG?XllL+DH|Qpa z?cj_#^~CFeN`K>@WOb*X z;i9n94VmSK++MUUe`U}0o7-@4k9Vqm`nPz~)!T%*nAW#_de`Ew!xMg~^YOksodzYp zzT8C*^``ND(p$f`(Q_&T=L7^Y{xZY-$El6>U4B;bXij}8!}Z_MNsc;~KLb6) N;OXk;vd$@?2>@`?a76$B literal 0 HcmV?d00001 diff --git a/MimeTypeBrowser/android/res/drawable-mdpi/icon.png b/MimeTypeBrowser/android/res/drawable-mdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d0fc25ef09881e3d62e4c4ae91c99717bdf1f919 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?4jBOuH;Rhv(mfq^mA z)5S3)qw(#mjb6--0uJ}*m8~@Gy`~tZ$-;fmWYL1Hb&XAR?u+af$}9Y9?TGbQJ|W66 zM2A^x*2WVto8%llJIpO-Y?nFxM&|gQyL+?09oVSKpm2t9siVzrjti7VmRvJ;J)CkTE;vfRy-#V|bX) zUe4diwjgZ5uOoX}D_d<^`X?xKc!vu$ zX>ctPY`PuUsiC4FHHGD*#dX*7M>a0s&CWdee96Ax)$3N?zItWlx>fVevL^Q!9`o?{ zw~Ol=tMtWo*^qt1eOlg9N2k{{S{#tSw5J)r!+=%)Fh zFWn4c4ZE3_7~gN+zgJ~RvfW&PD~-XA*l(@9BHYBgVA|(o<_gw5d9m>fdY7u}BiQCK z$Tub*2z}tuKSS+&c)c7#XR=4|IrPlLcq*IicomU{bL zHMUAm{=VP}$Gr3;Gmdql$Cea^bIh8#gSF}5q!|yxW}lk2$Fyu>OYb2^&x{Z0Yx6!! zu9(i%P=27_=dKXvYt`Dd%-*)|b}zp9N^Sd8<=0{TJEz*oJ?E5Az7Z@jQO{r8Xlr}J zW!qm?%(2x+ESn}y+UM4=8L0m7%ed)v0zOl>?DyUEEd8|2%ka{;Ga5g$e_9=sRZ5?> zTz!T0TC=OVtXJhZmc6JEzO?wE%1c4h^(Gu?oPKF+pI8pc+?6iaU8AzY+u(|z@s(A- zRpb}gO>a@)diG1|gII*h-}gy9B`-DYwk~;lk6FKg|3Kjbp@ODQTld@zf8KthQX_Jn zmeWjz&AcIhga7Y8&U7TAVa~g`m2Q7MrmD_3*|+UJgQ1whF_5qXw?Hyul8!?UYsbbx zA~-`T^VFepA#IQSUS2RiW_+Dj{qvO|d4{xu#c>V{#eOf=BpNR)PWSp;eZY6lr9JbX zEHQbna)Z4miSh3u&NY)h#Qs${CXsw*-E;Hr;q_ZA_9Ybna}k55tDnm{r-UW|()e&r literal 0 HcmV?d00001 diff --git a/MimeTypeBrowser/android/res/drawable-xxhdpi/icon.png b/MimeTypeBrowser/android/res/drawable-xxhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..35cefbcb5004ee3cd86279f23ae6e8a6735d2df4 GIT binary patch literal 1525 zcmd^<|3A|S9LGP~K4xExmN-om5mP5(WSlRxF!E*cr5;DygDZ<@HSJ2nCoXE2a&9b{ zXgRt|tm~V?Y}XgHS|rINK5w>SwpmjOq-(RmQEGKXm7XS?Je>I|Ly`eb(=vC8cevwDSBi+F#qYkfcF+hfDa#($~Miv>66 z4bJogaOuFWaw5ye19`H>8%!5L(4P)3)kLFkz%$dcoSabno;k94cH4-^`}?}KmjULU@4a8c5Z0$U;#|X zZom|GYHwm3*LDSJRw^D72R*k)^I@y(C@^XvF>2vj%9Qt+63eY_KVoIp^`iIOF#Dap z9CJl)Zu!I-MZ)$I+(Et;Q(M*eA;doqKAQb9W2qdxGMqt8m~$&{N_aGw0lK?U&lR2I zF(kw8XNX?y9GMpDZMKP-2N(Hki#(W$lY4mv>iJKY1J97kv)8Ag*;~fq7aW;jVqge{ zW@WbZsXtM6hiTq)HGfEa&L({3tp;vUGPw?+$T3v&jCx?R#*kC}JL_H=n5}3tR7SPi%LY13+L{*(K3%=XuIdM*dA$e=l&re{K1OR%4XQW9 z6Dal-Ykdz<|?!#j;(LEz!OwKRWu{DWF}o@%?hzdaoN*H zacwyG2O6!HhTvokxHtCL-93BA?vChzJjeArTv6*WeGaM#bzZ**6{}{;`jvAOt^bjH zG>KorgWzd@Vo_=SvD~Nbbm?)n291tc#_xe6CI}J*(ROF#*zmc>&Od0G!WLZ4T3l*n z&o#@m7YCB&X&NWReQ4Hk-H|Jc^Y$eCK>}Nc$ZsZ>$6E0vEJ2-s-5xCo!?HbvONCpGr}N{ zjILaPiVz^k5B}TyAI_0r3X5?zr5WjiEL-By=gLcfPT)%V{^S_Y6S}!Haz3rNOO5ni zIpg4(oY9W#1v8QHjmgh9EEn$W-H+%4>JR}fcdS(o0b~{5rCi{qFjbnU*Rggj%p{%0 zcPxbgaXOSCr6&Zu!`*|X9K6O}YPd7V10|x$iST;XdX23~-21~qvQ-=n%g$`ga20`0 lbS!%*awPl)=KGo1f=J5# z$Ez#9?5_*jiX-7Cf*+8o(XhjQ@Cb`&v*XZMv|Y8~Fn9Hp7t{JLFA*jUS`mxw^~L<^ zRC`Th&!cp+-XD8mO?vK?C5t1jBR>o3e|Z1>sApzXc~;$+oIml^h0YDeMxt=#9hTaX zb*ufR@A&|MX}_3c^bqEkWkm&)_g15E2W8&ykoIas1%*QX5a(O z*1&}nDh~1t!)7IR#E~T<>4#lX$JFcreuX_yMN<-LO5WKJzPi4!wY*ex-YE}o=HGW9 zXu1S^iu{%qo^t48o2ny*z1(0t0b?URrq#sD0xp#fO&qTu5ek9pU@6OL-xK3`KG?#_ z0NKt!OHg0jbKxOKVc?tt`tjsZ;_m4Dv;R7lOq-*2I7n_EWG%G|HG-- z7)yexd?_?HF?^YY6i84xZt{@jHngOXylkSUR5pm6@^;2^%vYcGx)UW|z!)x$5x+in zNB`0oPR;8-gRZlFo>9;rQiJSkxAGs!Iw6pmE;to(hmZC}igdx2EeZNqhx$5QWLVs3 zpt{_Bt}&2H0;2|5X6 zP@xjcE{l?7=ok(;cvu~nbR&LBYM&N)OjaL;r0XiE58X-!L&|zQ;|m~o!;B=(z1(mS z?M*$YMXb)CrGFf~A@>O6f7a+nfl483&Oa^<8E@@od>n|48%_m$FA3WP`432p^yS8A&nKP6B*>fK(6&e-I z!P@uCi($Ig`r@m98iVLgZGAJUyogM{J7 z*w=|Ztp@0=@&`8{2*}YQ;oGWH(mG0PE)KD+!Egy)Fe~SS-XaT`eO_7%nd%_5kQpqk z1)V7?Svk3lQ0&=cFhfG8hC_QbWotkb%!GyXvC=8dRs%L$x83L0J#wI*5GuIM33~QT z9Igzld$s~6pld3uqpkg|k9{E%^6p>YjKqS!u6H85=wuz$<0Bps}pIE5MHhkZ^8B4Ma{ zK>Wa(ee>_TnO`~pT2Fy59Mx|9H#EyL*goh~K~`CClwQ|xZ`a#52FE!2flG0Keg!1x zoW}pd|Lg`=A(4A^AGq+!`%A>G=y+73nS6HOdu_c5@P!{T5(q5ysx6K+3LBdG5c zhrZ10e)a}pQs#IhKOeaA!c(i!;tHNw%1WV`vhP0`g=FHHuho>SNy#c<#PXU_#o8lM z6J>%Y?_5D+st#SKsxs!FAb92iQ^*Xwfw#nP5FG_xa3c=Npmh7N9Rjx-r~OW&6>@td zCvP02GtYo`z%>x^6OJ3DisJY0O0wp`r@axsxkXP=XtjTqFxNmwM$Nc|F6I_T&=}tnwuGx790HR-@Z}XSYxqk!L CJDN5C literal 0 HcmV?d00001 diff --git a/MimeTypeBrowser/android/res/values-zh-rCN/strings.xml b/MimeTypeBrowser/android/res/values-zh-rCN/strings.xml new file mode 100644 index 00000000..0716b9be --- /dev/null +++ b/MimeTypeBrowser/android/res/values-zh-rCN/strings.xml @@ -0,0 +1,6 @@ + + + + Mime类型浏览器 + + diff --git a/MimeTypeBrowser/android/res/values/strings.xml b/MimeTypeBrowser/android/res/values/strings.xml new file mode 100644 index 00000000..cae23fb9 --- /dev/null +++ b/MimeTypeBrowser/android/res/values/strings.xml @@ -0,0 +1,6 @@ + + + + Mime Type Browser + + diff --git a/build_android.sh b/build_android.sh new file mode 100755 index 00000000..43bd58f8 --- /dev/null +++ b/build_android.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +if [ -n $1 ]; then + Qt6_ROOT=$1 +fi + +mkdir -p build_android +cd build_android +${Qt6_ROOT}/bin/qt-cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DQT_HOST_PATH=${Qt6_ROOT}/../gcc_64 \ + -DQt6LinguistTools_DIR=${Qt6_ROOT}/../gcc_64/lib/cmake/Qt6LinguistTools \ + -DCMAKE_INSTALL_PREFIX=`pwd`/install \ + -DANDROID_PLATFORM=android-35 \ + -DBUILD_TEST=OFF \ + -DBUILD_APP=OFF + +cmake --build . -j $(nproc) diff --git a/deploy.sh b/deploy.sh index 2e7d7d8f..719895aa 100755 --- a/deploy.sh +++ b/deploy.sh @@ -70,6 +70,7 @@ sed -i "s/rabbitcommon (.*)/rabbitcommon (${DEBIAN_VERSION})/g" ${SOURCE_DIR}/de sed -i "s/Version=.*/Version=${DEBIAN_VERSION}/g" ${SOURCE_DIR}/share/org.Rabbit.RabbitCommon.desktop sed -i "s/[0-9]\+\.[0-9]\+\.[0-9]\+/${DEBIAN_VERSION}/g" ${SOURCE_DIR}/README*.md sed -i "s/versionName=\"[0-9]\+\.[0-9]\+\.[0-9]\+\"/versionName=\"${DEBIAN_VERSION}\"/g" ${SOURCE_DIR}/FileBrowser/android/AndroidManifest.xml +sed -i "s/versionName=\"[0-9]\+\.[0-9]\+\.[0-9]\+\"/versionName=\"${DEBIAN_VERSION}\"/g" ${SOURCE_DIR}/MimeTypeBrowser/android/AndroidManifest.xml sed -i "s/RabbitCommon_VERSION:.*/RabbitCommon_VERSION: ${DEBIAN_VERSION}/g" ${SOURCE_DIR}/.github/workflows/ubuntu.yml sed -i "s/RabbitCommon_VERSION:.*/RabbitCommon_VERSION: ${DEBIAN_VERSION}/g" ${SOURCE_DIR}/.github/workflows/qmake.yml if [ -f ${SOURCE_DIR}/vcpkg.json ]; then