54c959643e
In androiddeployqt we try to add all plugins that belong to the Qt modules that Android application links. This works in case if all the plugin dependencies are linked to the Android application explicitly or implicitly using a build system linking mechanism. But plugins may have dependencies that should be resolved implicitly by androiddeployqt. The following situation is handled by this change: App1 links QtLib1.so QtLib1.so promotes its plugin plugin1.so to be included to an apk plugin1.so links QtLib2.so In the described example App1 expects that plugin1.so with all the dependencies is deployed to an apk without the need of linking QtLib2.so explicitly. There is a negative side effect of this change. plugin1.so is added to apk unconditionally so there could be a situation when the plugin is unused. So QtLib2.so with its dependencies will be included to an apk without necessity and will increase the size of the apk significantly. Cleanup forward declarations in androiddeployqt's main.cpp by moving them to the top of the file. TODO: Need to add the API which allows to exclude such plugins from apk or to specify the list of essential plugins that are used in the Android application. See QTBUG-107634 for details. [ChangeLog][Android] All plugins that belong to the Qt modules that are linked to the Android application are now deployed with their dependencies. androiddeployqt tries to find and resolve plugin dependencies implicitly instead of skipping plugins with dependencies that are not resolved explicitly in the user project. Fixes: QTBUG-107589 Fixes: QTBUG-106035 Change-Id: Ib6d9abd74ae5e21e856d7ccd02789a7a65602f40 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> |
||
---|---|---|
.github/workflows | ||
bin | ||
cmake | ||
coin | ||
config.tests | ||
dist | ||
doc | ||
examples | ||
lib | ||
libexec | ||
LICENSES | ||
mkspecs | ||
qmake | ||
src | ||
tests | ||
util | ||
.cmake.conf | ||
.gitattributes | ||
.gitignore | ||
.lgtm.yml | ||
.tag | ||
CMakeLists.txt | ||
conanfile.py | ||
config_help.txt | ||
configure | ||
configure.bat | ||
configure.cmake | ||
dependencies.yaml | ||
qt_cmdline.cmake | ||
sync.profile |