diff options
-rw-r--r-- | src/corelib/Qt6AndroidMacros.cmake | 8 | ||||
-rw-r--r-- | src/tools/androiddeployqt/main.cpp | 14 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/corelib/Qt6AndroidMacros.cmake b/src/corelib/Qt6AndroidMacros.cmake index 55e2ac1a80..c5f04c49bc 100644 --- a/src/corelib/Qt6AndroidMacros.cmake +++ b/src/corelib/Qt6AndroidMacros.cmake @@ -234,6 +234,14 @@ function(qt6_android_generate_deployment_settings target) string(APPEND file_contents " \"extraPrefixDirs\" : [ ${extra_prefix_list} ],\n") + if(QT_FEATURE_zstd) + set(is_zstd_enabled "true") + else() + set(is_zstd_enabled "false") + endif() + string(APPEND file_contents + " \"zstdCompression\": ${is_zstd_enabled},\n") + # Last item in json file # base location of stdlibc++, will be suffixed by androiddeploy qt diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 25e5ea3d44..b4771c8f95 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -195,6 +195,7 @@ struct Options QString toolchainPrefix; QString ndkHost; bool buildAAB = false; + bool isZstdCompressionEnabled = false; // Package information @@ -1108,6 +1109,12 @@ bool readInputFile(Options *options) const QJsonValue qrcFiles = jsonObject.value(QLatin1String("qrcFiles")); options->qrcFiles = qrcFiles.toString().split(QLatin1Char(','), Qt::SkipEmptyParts); } + { + const QJsonValue zstdCompressionFlag = jsonObject.value(QLatin1String("zstdCompression")); + if (zstdCompressionFlag.isBool()) { + options->isZstdCompressionEnabled = zstdCompressionFlag.toBool(); + } + } options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QLatin1String("/AndroidManifest.xml")); if (options->packageName.isEmpty()) options->packageName = cleanPackageName(QLatin1String("org.qtproject.example.%1").arg(options->applicationBinary)); @@ -2086,9 +2093,14 @@ bool createRcc(const Options &options) if (!res) return false; + QLatin1String noZstd; + if (!options.isZstdCompressionEnabled) + noZstd = QLatin1String("--no-zstd"); + QFile::rename(QLatin1String("%1/android_rcc_bundle.qrc").arg(assetsDir), QLatin1String("%1/android_rcc_bundle/android_rcc_bundle.qrc").arg(assetsDir)); - res = runCommand(options, QLatin1String("%1 %2 --binary -o %3 android_rcc_bundle.qrc").arg(rcc, shellQuote(QLatin1String("--root=/android_rcc_bundle/")), + res = runCommand(options, QLatin1String("%1 %2 %3 --binary -o %4 android_rcc_bundle.qrc").arg(rcc, shellQuote(QLatin1String("--root=/android_rcc_bundle/")), + noZstd, shellQuote(QLatin1String("%1/android_rcc_bundle.rcc").arg(assetsDir)))); if (!QDir::setCurrent(currentDir)) { fprintf(stderr, "Cannot set current dir to: %s\n", qPrintable(currentDir)); |