Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-802

Enable PySide/Shiboken cross compilation for different targets.

    XMLWordPrintable

Details

    • Epic
    • Resolution: Fixed
    • P2: Important
    • 6.3.0
    • None
    • Build System, PySide, Shiboken
    • None

    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

          For Gerrit Dashboard: PYSIDE-802
          # Subject Branch Project Status CR V

          Activity

            People

              alexandru.croitor Alexandru Croitor
              azarubkin Alexandr Zarubkin
              Vladimir Minenko Vladimir Minenko
              Alex Blasche Alex Blasche
              Votes:
              9 Vote for this issue
              Watchers:
              22 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There is 1 open Gerrit change