| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- These files have to be ignored in the deployment process because
Nuitka is not able to recognize these file formats and considers
them to the dlls instead of data files.
- The missing .webp files breaks the usage of BusyIndicator type of
QtQuick Controls. Hence, a bug report for that is raised in Nuitka
: https://github.com/Nuitka/Nuitka/issues/2854
- Adapt tests
Pick-to: 6.7 6.5
Change-Id: Ic4b3b6c65e059ec618a26361caa62b9d7c608690
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
- Add documentation for the tool
- Add a screenshot of the tool
Pick-to: 6.7 6.6 6.5
Task-number: PYSIDE-2629
Change-Id: I63d1d7e65d92ec37012ce40bb319dfeef9c9695b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
| |
Pick-to: 6.7
Task-number: PYSIDE-2629
Change-Id: I46303c172bb82654186def51908317c269c7c5e7
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
|
| |
- Also add the relevant documentation
Pick-to: 6.7 6.6 6.5
Task-number: PYSIDE-2629
Change-Id: Ic2e7798a5f0ff7015cb87089dda2420ed6327ca2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Analogous to the qsb tool in Qt
- Add pyside6-qsb tool to the documentation
- Update developer documentation
Pick-to: 6.7 6.6 6.5
Task-number: PYSIDE-2629
Change-Id: I93058ebb2864491e951f4f828d703d8893fbcbe7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Check if package e.g. PySide6_AddOns is installed before checking for
the .json file
- If a package is missing, add log warning for the missing package.
If the .json file is missing inspite of the package being installed,
then raise a proper warning.
Pick-to: 6.7 6.7.0
Task-number: PYSIDE-1612
Change-Id: Ia65b06df15df7b334438f439762b135d9f61981d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
- QQuickView should be used when the rootobject is a QQuickItem.
Pick-to: 6.6
Task-number: PYSIDE-2640
Change-Id: I1ee866d7fbd732500111db139f052f4bd3024740
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
- updated to r26b in accordance with Qt 6.7
Task-number: PYSIDE-1612
Change-Id: I7efa6d827b84d92a5571c4e2d337b6545810406a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
- Amend according with d1760bc8100c94a831f80080a5433a360266c5e2
- Update Android NDK to r26b aligning with Qt
Task-number: PYSIDE-1612
Change-Id: I4ddb99568617d73213f83536f2c2a2e028d927ee
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
| |
Task-number: PYSIDE-1612
Change-Id: Ieab3a7c7fd43e50e83c30d97cb70f6f1135b69e3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Look at the ast of the python files of the application to identify
the permissions used by the application. Once the permissions
are identified, pass the necessary NS property list key to be added
to the Info.plist file to Nuitka.
- For macOS, when deploying create a macOS application bundle (.app)
by default. This makes it align more with Apple recommendations
and Qt deployment.
- Fix tests.
- Fix wheel_tester.py to consider .app for macOS.
Task-number: PYSIDE-1612
Task-number: PYSIDE-2468
Change-Id: Ie225c9a92c845b432a8e7eaa791a8aeb86ecd988
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Applications that use certain modules like Multimedia does not work
because the plugins for it were not included. However, including all
the plugins can make the application executable huge. This patch
filters out the necessary plugins by looking at
PySide6_Essentials.json and PySide6_Addons.json shipped with the
wheels and only bundles these necessary plugins with the application.
- Adjust tests.
Task-number: PYSIDE-1612
Task-number: PYSIDE-2597
Change-Id: I35c74907a1782ae5101fb7c0861adcb97db5792d
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Based on the desktop platform, find all the Qt module dependencies
of the application just like Android. These dependencies can help
in optimizing the plugins packaged with the application.
- Desktop deployment has new cl arguments: --extra-ignore-dirs
and --extra-modules that further complements finding the Qt
modules used by the application.
- Since the Qt dependencies are also required for desktop deployment,
'modules' field in pysidedeploy.spec is moved from under 'buildozer'
key to 'qt' key.
- dependency finding code moved to dependency_util.py. This also
helps in list the imports without conflicts in deploy_lib/__init__.py.
- Fix tests. Skip the deploy tests for macOS 11 as the CI does not
include dyld_info either via XCode or CommandLineTools.
Task-number: PYSIDE-1612
Change-Id: I3524e1996bfec76c5635d1b35ccbc4ecd6ba7b8d
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- ordered_set and zstandard are installed along with Nuitka. We don't
need to explicitly specify them anymore. If they are not existing,
it means that the user might have explicitly removed them.
- Adapt tests.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I21657cb6df95f2d33f48a719a71f49efab84990c
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- setup_python() moved to constructor of PythonExecutable.
-install_python_dependencies() moved under PythonExecutable in
python_helper.py.
- create_executable() of PythonExecutable removed. Instead, we call
Nuitka.create_executable() directly. This removes unncessary import
problems when using PythonExecutable class for Android Deployment.
- nuitka==1.8.0 changed to Nuitka=1.8 in default.spec to match with
the installed version. Otherwise, it forces the reinstall of
Nuitka==1.8 every time (bug).
- Remove recomputation of qt_plugins and local_libs. If the values
exist in pysidedeploy.spec, then they should not be computed again.
This serves the purposes of speeding up the deployment and also
to no modifying the already existing pysidedeploy.spec.
- find_pyside_modules() moved from python_helper.py to deploy_util.py.
- Adapt tests.
- Remove os.fspath wrapping from python.exe. This is not needed as
python.exe is already pathlib.Path.
Pick-to: 6.5 6.6
Task-number: PYSIDE-1612
Change-Id: Ic598e57cd2f2779c410b12fc9584cf60c5e94505
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Functions in buildozer.py for finding the local_libs, plugin and Qt
module dependencies of the application are related to the overall
config of the application and not buildozer. Hence, these functions
are moved to android_config.py.
- `ALL_PYSIDE_MODULES` moved to a function under deploy_lib/__init__.py
and `platform_map` moved to deploy_lib/android/__init__.py.
- Enable the user to pass both arm64-v8a and aarch64 as the
architecture type. Same for all the other architecures that are
synonymous.
- `verify_and_set_recipe_dir()` is now called explicitly from
android_deploy.py due to `cleanup()` deleting the recipe directories
during config initialization.
- New property `dependency_files` for AndroidConfig class.
- Fix --dry-run for Android Deployment.
- Adapt tests.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: Icdf14001ae2b07dc8614af3f458f9cad11eafdac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
Bug caused from 10715102f01bfee9c0122f21680f05414a947357
Pick-to: 6.6 6.5
Change-Id: I50631239134f154baebab0eef4d36c52e8ba398b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][PySide6] pyside6-project now has an lupdate mode
updating translation files (.ts) from the sources.
Change-Id: I853e55455fff2c0c22a7099c650e4bd3b2fc52c4
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][PySide6] pyside6-project now also builds translation (.qm)
files.
Pick-to: 6.6 6.5
Change-Id: I9863ff3d031499ae7a74c04ec988ca2085a75cfa
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
| |
Resource might depend on generated files. Introduce a sort function to
ensure .qrc goes last.
Pick-to: 6.6 6.5
Change-Id: I8188eda00247cb192a485f30755100862d6895a1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.6 6.5
Change-Id: Ia940796bd129522e703ae35ffa2963bf21d9680f
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
We are only interested in Qt decorators.
Pick-to: 6.6 6.5
Change-Id: Idb9737f5151e6fe4db383e8682b0c6019c3cb61d
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fix general flake8 warnings in pyside-tools.
- add F401 to .flake8 to ignore unused imports from __init__.py files
- add E402 from __init__.py to prevent errors related to partial
initialization of modules.
Pick-to: 6.6 6.5
Change-Id: Ia848b08ff6f0d2808e04f6a83c46636e2d167c02
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
- Android deployment worked by using my own fork of p4a. This can
be removed now that the changes are merged into the master branch
of p4a.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I530c6f6b6cbeffa80b3833c1d6efb50154eb47e9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Distinguishes the changes fields as only relevant for Android
Deployment.
- This distinguishing group makes it clearer when we finally have iOS
wheels.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I215d2deec0117ae855e6d9a061642984eccd36ef
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use subprocess.call() instead of capturing the output.
As a drive-by, use stderr for error messages.
Pick-to: 6.6 6.5
Change-Id: I28c9623754b0718cd4a5041475f451247ac5811f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- With pyenv installed Python, we need to explicitly add the full Python
library path to LD_PRELOAD(Linux) and DYLD_INSERT_LIBRARIES(macOS).
Otherwise, these libraries are searched in the default search paths
of ld and dyld, and it won't be able to find them.
- for macOS, the python installed with pyenv won't be a framework build
unless explicitly specified. Thus we use the same approach for linux
by looking for the Python library inside the path in `LIBDIR`. In the
case of a framework build with pyenv, 'PYTHONFRAMEWORKPREFIX' will not
be empty and hence no explcit changes are required.
Fixes: PYSIDE-2568
Pick-to: 6.2 6.5 6.6
Change-Id: I94815b721acb85fa0b7f28d1bbb00a49717120c3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- When the --init option is used the config files are created, but to
create buildozer.spec from pysideconfig.spec, buildozer has to
be installed. This patch installs `buildozer` when --init option is
passed.
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: I6917496e509a0b4a203346145d1c3fe8dc73ba14
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Adds a requirements-android.txt file
- Simplifies code in pyside_tool.py
- Sets up installing requirements in tests without redundantly
listing the dependent packages
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: If98f6458673bc72103c898e078e6a16f1cf38b12
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
- These can be removed since the update is done after initialization
in android_deploy.py
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: I7fa86e3c11a4161141a90ffd326c5748f149263d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- For Android deployment, by default kivy's icon is used when the
application is deployed. This patch makes use of PySide icon as the
default for all applications created with pyside6-android-deploy.
- Icon formats accepted by Nutika
windows: .ico
macOS: .icns (contains a 128x128 .png file)
linux: all standard image formats. We use .jpg
- For Desktop deployment
- change the option --linux-onefile-icon to --linux-icon. Both
are the same.
- Add icon options for macOS and Windows.
- Adapt deployment test accordingly.
- As an addition, add a default value to the --config-file option so
that it picks up the one in the project directory automatically, if
it exists. It aligns with the desktop deployment tool as per
6337e4a306babdb4015c248a14ad734b320ed2c1
- As another extra, remove an unused typing import from config.py
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: Ia67ea96f94ddffe4bc65652f91c8b394c4e56a33
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
- No more warning on 3.11. Still no support for 3.12.
- As a drive by, remove deployment related packages from the project's
requirements.txt file.
Pick-to: 6.6 6.5
Task-number: PYSIDE-1612
Change-Id: I1d379b4241d3e40de107ceb8c8d28b893de39dec
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Currently the dependencies are identified by checking the
dependency files shipped with Qt and checking the Python files
related to the project for PySide imports, to identify the Qt modules
used.
- This patch extends the dependency check by also checking the QML
files related to the project for QtQuick and QtQuickControls2
import.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: Ia92ff9c2d06c383a6357b69f0f19160b1b522afa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move android related configurations into a new class AndroidConfig.
This class inherits from the class Config.
- Move configuration related code sections from `android_deploy.py`
to `android_config.py`
- get_config() renamed to create_config_file().
This simplifies a lot of code and makes Android deployment independent
of Desktop deployment.
- Move `generated_files_path` to `config.py`. As a result,
`generated_files_path` does not need to be passed as parameter to
to functions like `cleanup()`, `finalize()`, `Buildozer.initialize()`
as config is already passed.
- generated_files_path expression changed.
This is because we assume the project_dir is always the parent of the
source_file (i.e. main.py)
- `Buildozer` import removed from `android/__init__.py` to prevent
circular import issues.
- Change buildozer commands to use "python -m" as prefix.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: Ie460dc459908dab44de82c3e269b806aff2c27c5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The qml files are identified and stored as relative path and line
under consideration tries to do a 'relative_to()' on an absolute path
which causes the error
ValueError: {qml_file} is not in the subpath of 'project_path' OR
one path is relative and the other is absolute.
The error only appears on the first run of pyside6-deploy with a
project that does not have a .pyproject file. For the subsequent
runs, absolute path are used because the path is fetched from the
deploy config file.
- This patch fixes this error by using absolute path for each qml_file
Pick-to: 6.6 6.5
Task-number: PYSIDE-1612
Change-Id: Ib54edded404bd1be87ab5f22f61e2d30416b7dae
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
| |
Removed for 6.6 because we don't support Python 3.7 from PySide 6.6
Pick-to: 6.6
Change-Id: I2aea80ef28dad7bd346ff9f2321f01b3481e8762
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: I620582409749b1ce1e36721f1308005c4f6d2828
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the patch for pyenv was applied, some tests in
test_pyside6_deploy.py were broken, which shows up
locally but not (yet) in CI.
For better understanding, the test classes were further
broken up into three groups (irrelevant, might be undone).
Things became clearer by writing a special version of
unittest.TestCase that handles long strings as lists.
REMARK: We are at Python 3.8 and can use ":=" now :=)
Task-number: PYSIDE-1612
Change-Id: I3a479f48b96dd5f95864b8a94af6d01b42ffc196
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- An absolute 1:1 relation does not exist between Qt binaries and
the generated PySide6 binaries eg: libQt6QmlModels.so exists and
contains only QML types. Hence there are no Python bindings for it
and QmlModels.abi3.so does not exist.
- This patch cross checks the Qt module dependencies against available
PySide6 modules and then decides if the dependency is a valid PySide6
module to be copied to the Android application `lib` folder and
and also added to `libs.xml` to be loaded on application startup.
- As an addition, 'isort' is ran on 'buildozer.py'.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I40a6b747ee21a2eefadf557b81b5e1500b2d0a1e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- `pyside6-android-deploy` has dependencies on Python packages `jinja2`
and 'pkginfo'. Earlier they had to be manually installed by the user.
- This patch automates the installation on the first invocation of the
tool.
- Windows and macOS desktop hosts now prints a not supported message
and exits pyside6-android-deploy.
- As an addition, ran `isort` on the file.
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I9ecba72afb396624809e98adf43236a2f15c15eb
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Formatting and text updates.
- extract_and_copy_jar() returns the extracted path to the jar
directory
- Buildozer class is now initialized when `pyside6-android-deploy` is
run with --init. This is because it updates the recipes folder.
- Buildozer defaults for Android NDK cannot be used anymore because
`pyside6-android-deploy` uses llvm-readelf from the NDK to find the
binary dependencies.
- Change print statement to RuntimeError incase `main.py` does not exist
- Change logging.exception to RuntimeError for the function
`find_pyside_modules`
Pick-to: 6.6
Task-number: PYSIDE-1612
Change-Id: I6ef5d5dfe9acae5f0029553ca2c6f07d91b6e462
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- `--config-file` now defaults to pysidedeploy.spec. This enables to
automatically find the config file, in case if it is present,
without specifying it through the `--config-file` option.
- Use `pip freeze` also to check if a Python package in installed. This
is useful for packages like `patchelf` which does not provide
a Python module, but only an executable.
- Change some `logging.exception()` to actual exceptions because the
the exception requires some manual intervention for resolution.
- Some of the config options were earlier reevaluated even when an
existing config file exists. This is now adapted to skip the
reevaluation when a config file exists.
- In case of pyenv python, add `--static-libpython=no` as extra argument
accepted by Nuitka. This is because pyenv Python uses `--enable-shared`
by default since release 2.3.10 -
https://github.com/pyenv/pyenv/pull/2554
- Some general fixes related to logging.
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: Ib0fa0ca0ec3a08c07140c0c2fa32f422658d04d8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This patch adds an extra step to check the existence of Python files
generated from `pyside6-uic` and `pyside6-qrc` for identifying the
imported Qt modules in the application.
This only applies when the application has a .pyproject file. When
the project does not have a .pyproject file, all the Python files
in the application are checked for Qt module imports.
The .pyproject file does not consider the generated Python files and
hence the need of this patch.
- For pyside6-deploy, this patch is irrelevant because Nuitka identifies
all the required Python files of the project.
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: Ic9a2812c42226b6baebab1b23fac8e410910578e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Copy the required Qt plugins from `site_packages` of the python
bundled with the application to the `libs` folder of the Android
gradle project. Android looks for required libraries in this `libs`
folder. A similar step is also done by `androiddeployqt` when it
created an Android gradle project from a C++ application.
- Dependent Qt libraries found during processing of
pyside6-android-deploy are also copied into the `libs` folder, if it
does not exist already.
- `plugins` key added to `pysidedeploy.spec`, which represents the
plugins to be copied.
- The Android dependency files shipped with Qt for Android platforms,
are prased to obtain all the dependent Qt plugins of an application.
- Some code refactoring to facilitate the plugin and library copy,
by passing the plugin and library names to the PySide6 recipe
template. `jinja2` does the job of using this template to create
the PySide6 recipe to be used by python-for-android.
- As an addition, fix some minor code issues and add extra logging.
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: I63ca1e48aa1e4c98c912a87e68f3ae912ce89ca4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
| |
The suffix .pyw is used for Windows GUI applications.
Pick-to: 6.6 6.5
Fixes: PYSIDE-2471
Change-Id: Ib067e075ea5b76c36a69da0881e224bdf416c45e
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- The `jar` xml element in the dependency files shipped with Qt for
Android sometimes has a 'initClass' field which depicts the full
qualified name of the class in the jar file. When available, this
is to be added to libs.xml (used by Qt for Android to list the
dependencies of the app) to identify the specific class being
referenced. The element name for this in `libs.xml` is called
`static_init_classes`.
Task-number: PYSIDE-1612
Pick-to: 6.6
Change-Id: I184ea06e36054ebe70da5a81da48a732287016dc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
- .js files in the application are now bundled with the app. Earlier,
they were disregarded.
Task-number: PYSIDE-1612
Pick-to: 6.6 6.5
Change-Id: Id81e5cdf7418549f10e1a0dfe8f944cf58664a86
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Enable automatic download of Android NDK and SDK for creating
Android PySide6 and shiboken6 wheels. Earlier, the user was
required to manually download it and supply as a command line
argument.
- They are downloaded into the HOME directory of the user into the
folder .pyside6_android_deploy. This is also similar to buildozer
which downloads them into .buildozer.
- The downloaded NDK is set to r25c, same as buildozer. The latest
Android SDK packages are downloaded.
- For the deployment tool, incase the NDK and SDK path are not
provided either through the command line or through the configuration
.spec file, the it will look for the NDK and SDK inside
.pyside6_android_deploy, before falling back to the default Android
NDK and SDK that buildozer supplies. buildozer will download them.
- As a addition, a small code rearranging is also done, along with
changing the deprecated subprocess.call() to subprocess.run().
Task-number: PYSIDE-1612
Change-Id: Ie8d51f8c7634b5b320b1dce2d4164985cbfbaaca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is required for having callbacks from C++/CPython back to Python.
One example of this is when shiboken class="native" methods are called
. There are also other cases where we call back to a Python callable
through a callback from the wrapper code generated by Shiboken.
- The identified Qt modules are loaded by the python-for-android
recipe for PySide6.
Task-number: PYSIDE-1612
Change-Id: I5881ac2351fc0afb87367b4149f0f668ac1a8d37
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Use llvm-readelf to recursively find the dependencies of a dependent
Qt binary.
All the Qt dependencies are loaded at startup when loading the Android
application.
- Parse the revelant Python files of the project into ast, and
find the used Python modules. Once the Python file is parsed
into an ast, we find the imports of the following form:
from PySide6 import Qt<module>
from PySide6.Qt<module> import <classname>
This is then used to identify the module used, and we try to
load the binaries of this module. If the modules does not exist
in Qt for Android, then an error is thrown.
- The easiest way to find the relevant Python files in the project is
using a .pyproject file which lists all the relevant files. If this
is not there, then we find all the Python files in the project
folder excluding the following folders:
[".hg", ".svn", ".git", ".tox", "__pycache__", "env", "venv",
"deployment",".buildozer"]
- A new cli argument --extra-ignore-dirs, that lists the extra
directories to ignore when searching for all the relevant python
files in the project.
- A new cli argument --extra-modules, that lists the extra modules
to be added manually to the application incase they are not found
by `pyside6-android-deploy` automatically. Adding a module using
this argument means that the module binary is loaded by the Android
application on startup.
- sdk and ndk cli options are now mandatory to find the dependencies.
These two options will be removed later when pyside6-android-deploy
can automatically download them.
Task-number: PYSIDE-1612
Change-Id: Ifbdc20cbc70ab0935a23157ccc8cb7fde6992df2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|