Details
-
Epic
-
Resolution: Fixed
-
P2: Important
-
None
-
None
-
PySide Cross Compilation
-
57866a57586d401c784f809f9f7994b0e4623706, 4b12b8f55 (dev), 2f70befc2 (6.5)
Description
Motivation
During the development of PySide 2, for 5.12+ versions, the main goal was to get rid of most of the flaws, and raise PySide's level so people could rely on the module both for just-for-fun and commercial projects.
After a couple of releases, the focus was moved forward Qt 6 compatibility, and with 6.0 out, and 6.1 almost around the corner, it makes sense to focus on the next steps for 6.2+.
Objective
The goal of this Epic is to improve the build infrastructure of PySide and Shiboken, to be able to cross compile the project for different targets, focusing mainly on embedded systems with ARM and aarch64 architectures. The decision of the architectures comes from the many requests specifically for Raspberry Pi devices, and also linux-based aarch64 devices like the Pinebook, and Pinephone.
Next steps
- Re-structure the cmake configuration to build libshiboken, and shiboken gen, so the tools can be build for the host and target, using the host binary for the cross compilation of the target, and the target binaries for distribution.
- It's important to notice that when building shiboken, the process follows the order: ApiExtractor, libshiboken, Shiboken generator, and Shiboken Module (Python).
- Shiboken generator, depends on both ApiExtractor
- Shiboken module (Python), depends on libshiboken
- Introduce command lines options related to this process for the setup.py build method, so it's easy to package and distribute.
Background
This task was raised before by azarubkin, but was later transform into an EPIC:
There is https://www.piwheels.org/ site which aims to provide wheels for Python packages built for Raspberry Pi. Unfortunately, there is no PySide2 package there.
As the maintainer of the site said (https://github.com/bennuttall/piwheels/issues/84), he needs either source package (.tar.gz) to build the wheel from, or ready wheel prebuilt by you.
It would be great to see PySide2 supported by Raspberry Pi!
Attachments
Issue Links
- covers
-
PYSIDE-2058 Unable to build PySide6.2.4 for Raspbian Bullseye
- Closed
- depends on
-
PYSIDE-1033 Improve the shiboken build process
- Closed
-
QTBUG-90843 B2Qt61: Raspberry Pi 4 (ARM-v8A 64bit) with Yocto 3.2 Gatesgarth (not a refe)
- Closed
-
QTBUG-86955 Raspberry Pi 4 (ARM-v8A-32/64bit) with Debian based Raspberry Pi OS and Qt apps
- Blocked
- is duplicated by
-
PYSIDE-853 Research Qt for Python Usage on Embedded Linux
- Withdrawn
- is required for
-
QTBUG-87045 Qt 6.2 hosts - macOS on ARM64 (moA)
- Closed
-
QTBUG-85279 Qt for macOS on Apple Silicon (arm64)
- Closed
- relates to
-
PYSIDE-1120 Support Qt for Python on MCU
- Open
-
PYSIDE-1477 shiboken2: fails on crossbuild, need to pass platform's target definition to clang
- Reported
-
PYSIDE-1837 Failed to install on Raspbian
- Closed
-
PYSIDE-2090 build shiboken generator when cross-compiling
- Closed
-
PYSIDE-1958 Cross-compilation fails
- Closed
-
PYSIDE-2057 shiboken2 stores compiler value at compile time
- Closed
-
PYSIDE-1439 Document how to build LibClang from source
- Closed
-
PYSIDE-1592 we want to develop android app using pyside6 and qt
- Closed
- resulted in
-
PYSIDE-1810 Write documentation on how to cross-build Qt For Python
- Closed
-
PYSIDE-1812 Allow specifying target sysroot for header extraction when cross-compiling
- Open
-
PYSIDE-1811 Replace cross-building manylinux2014 tag with proper glibc version detection
- Open
- mentioned in
-
Page Loading...
For Gerrit Dashboard: PYSIDE-802 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
443467,1 | build_scripts: Don't use Qt from the environment for configure checks | dev | pyside/pyside-setup | Status: NEW | +1 | 0 |
351288,27 | Introduce conditional processing instructions to typesystem XML | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351392,4 | CMake: Rename the ENABLE_ platform variables | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351395,21 | Use conditional processing in the type system | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351429,2 | CMake: Rename the ENABLE_ platform variables | 6.1 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351441,2 | PySide6: Move class QSysInfo into the common type system file | 6.1 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351674,1 | WIP: Pass Qt module features as keywords to shiboken | dev | pyside/pyside-setup | Status: DEFERRED | -2 | 0 |
351679,3 | PySide6: Move class QSysInfo into the common type system file | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
351702,19 | shiboken6: Introduce a private attribute | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
352106,14 | Refactor macro create_pyside_module() | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
352715,2 | Refactor macro create_pyside_module() | 6.1 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
353293,3 | libpyside: Streamline CMakeLists.txt | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
354622,2 | libpyside: Streamline CMakeLists.txt | 6.1 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
367329,5 | shiboken6/ConditionalStreamReader: Fix conditions that consists of exclusions only | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
373445,101 | CMake: shiboken: Add support for cross-building | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
373733,81 | CMake: Create new Shiboken6Tools CMake package | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
373735,103 | CMake: pyside: Add support for cross-building | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
374068,144 | setup.py: Add support for cross-building | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
375391,6 | shiboken6/Clang parser: Refactor include checking | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
375422,3 | shiboken6/Clang parser: Replace #ifdefery for compiler/platform by variables | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
375702,3 | shiboken6/Clang parser: Refactor include checking | 6.2 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
375703,3 | shiboken6/Clang parser: Replace #ifdefery for compiler/platform by variables | 6.2 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
381116,100 | WIP: coin: Cross-compile PySide to Raspberry Pi Archlinux armv7 in CI | dev | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
381362,5 | coin: Don't prepend /bin: to PATH on Linux hosts | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
382534,2 | coin: Don't prepend /bin: to PATH on Linux hosts | 6.2 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
395301,2 | Build system: Add build_info_collector to project file | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
403021,7 | doc: Add cross compilation guide | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
431688,2 | build: Address fixme comment in utils.py | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
431689,4 | build: Improve error message about test-configuring projects with cmake | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
433732,2 | Documentation: Add option --no-qt-tools to cross building | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
443466,3 | build_scripts: Don't use options from the environment | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
443692,2 | libpyside/libpysideqml: Update list of headers to be installed | 6.4 | pyside/pyside-setup | Status: MERGED | +2 | 0 |
443719,2 | libpyside/libpysideqml: Update list of headers to be installed | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
491050,2 | Cross Compilation - Fix Patchelf | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
491166,2 | Cross Compilation - Fix Patchelf | 6.5 | pyside/pyside-setup | Status: MERGED | +2 | 0 |