1 # Maintainer: Antonio Rojas <arojas@archlinux.org>
2 # Maintainer: Felix Yan <felixonmars@archlinux.org>
5 pkgname=(shiboken2 python-shiboken2 pyside2 pyside2-tools)
11 url='https://www.qt.io'
13 makedepends=(cmake python-setuptools llvm clang=$_clangver
14 qt5-multimedia qt5-tools qt5-sensors qt5-charts qt5-webengine qt5-datavis3d
15 qt5-websockets qt5-speech qt5-3d qt5-svg qt5-script qt5-scxml qt5-x11extras
16 qt5-quickcontrols2 qt5-serialport qt5-remoteobjects qt5-xmlpatterns)
17 optdepends=('qt5-svg: QtSvg bindings'
18 'qt5-script: QtScript bindings'
19 'qt5-speech: QtTextToSpeech bindings'
20 'qt5-websockets: QtWebSockets bindings'
21 'qt5-webengine: QtWebEngine bindings'
22 'qt5-datavis3d: QtDataVisualization bindings'
23 'qt5-scxml: QtScxml bindings'
24 'qt5-sensors: QtSensors bindings'
25 'qt5-3d: Qt3D bindings'
26 'qt5-x11extras: QtX11Extras bindings'
27 'qt5-charts: QtCharts bindings'
28 'qt5-tools: QtHelp bindings'
29 'qt5-remoteobjects: QtRemoteObjects bindings'
30 'qt5-serialport: QtSerialPort bindings'
31 'qt5-quickcontrols2: QtQuickControls2 bindings')
32 _pkgfqn=pyside-setup-opensource-src-$_qtver
33 source=(https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-$pkgver-src/${_pkgfqn}-1.tar.xz
35 sha256sums=('3298660742037c71274a30770541abf6d1552ec65fc93678eedee5718852a62c'
36 'e91549f7d3da412e864af26f604d0023b80233a7165f50fa21e53cbe861db886')
39 patch -d $_pkgfqn -p1 < python3.11.patch # Fix build with Python 3.11
40 sed -e 's|0x030AFFFF|0x030BFFFF|' -i $_pkgfqn/sources/shiboken2/libshiboken/pep384impl.h
44 cmake -B build -S $_pkgfqn \
45 -DCMAKE_INSTALL_PREFIX=/usr \
46 -DCMAKE_BUILD_TYPE=None \
48 -DPYTHON_EXECUTABLE=/usr/bin/python
53 pkgdesc='Generates bindings for C++ libraries using CPython source code'
54 depends=(clang=$_clangver llvm libxslt qt5-xmlpatterns)
56 DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
57 # Provided in python-shiboken2
58 rm -r "$pkgdir"/usr/lib/{python*,libshiboken*}
59 # Conflicts with shiboken6 and doesn't work anyway
60 rm "$pkgdir"/usr/bin/shiboken_tool.py
63 package_python-shiboken2() {
64 pkgdesc='Python bindings for shiboken2'
67 DESTDIR="$pkgdir" cmake --install build/sources/shiboken2
68 # Provided in shiboken2
69 rm -r "$pkgdir"/usr/{bin,include,lib/{cmake,pkgconfig}}
73 python setup.py egg_info --build-type=shiboken2
74 _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
75 cp -r shiboken2.egg-info "$pkgdir"/$_pythonpath
79 pkgdesc='Enables the use of Qt5 APIs in Python applications'
80 depends=(python-shiboken2 qt5-declarative)
81 optdepends=('qt5-svg: QtSvg bindings'
82 'qt5-script: QtScript bindings'
83 'qt5-speech: QtTextToSpeech bindings'
84 'qt5-websockets: QtWebSockets bindings'
85 'qt5-webengine: QtWebEngine bindings'
86 'qt5-datavis3d: QtDataVisualization bindings'
87 'qt5-scxml: QtScxml bindings'
88 'qt5-sensors: QtSensors bindings'
89 'qt5-3d: Qt3D bindings'
90 'qt5-x11extras: QtX11Extras bindings'
91 'qt5-charts: QtCharts bindings'
92 'qt5-tools: QtHelp bindings'
93 'qt5-remoteobjects: QtRemoteObjects bindings'
94 'qt5-serialport: QtSerialPort bindings'
95 'qt5-quickcontrols2: QtQuickControls2 bindings')
96 provides=(qt5-python-bindings)
98 DESTDIR="$pkgdir" cmake --install build/sources/pyside2
101 python setup.py egg_info --build-type=pyside2
102 _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"`
103 cp -r PySide2.egg-info "$pkgdir"/$_pythonpath
106 package_pyside2-tools() {
107 pkgdesc='Tools for PySide2'
110 DESTDIR="$pkgdir" cmake --install build/sources/pyside2-tools
111 rm "$pkgdir"/usr/bin/{rcc,uic,designer,pyside_tool.py} # provided by qt5-base