pkgbase=pyside6 pkgname=(pyside6 pyside6-tools shiboken6) _qtver=6.7.1 _clangver=17.0.6 pkgver=${_qtver/-/} pkgrel=1 arch=(x86_64) url='https://www.qt.io' license=(LGPL) makedepends=(clang cmake git llvm ninja python-numpy python-setuptools qt6-3d qt6-charts qt6-connectivity qt6-datavis3d qt6-graphs qt6-httpserver qt6-location qt6-multimedia qt6-networkauth qt6-positioning qt6-quick3d qt6-remoteobjects qt6-scxml qt6-sensors qt6-serialbus qt6-serialport qt6-shadertools qt6-speech qt6-svg qt6-tools qt6-webchannel qt6-webengine qt6-websockets) source=(git+https://code.qt.io/pyside/pyside-setup#tag=v$pkgver fix-build.patch missing-include.patch) sha256sums=('cd2e6bca68d14af05185f1413645b7069528d30acb58ff9d9deccf83bd1b8bdc' '77b83cb164ea87d826259864f6a81fb33199510e1948d6daaf5c8d5ab55735a7' 'd1a3fd4930c93ccfc02c051dd6f072f19658f223b28951a8d2a19a0b46018009') prepare() { cd pyside-setup git cherry-pick -n 556bc8d158b06546343ae2f51b05f555d47442c0 # Fix star imports (PYSIDE-2675) patch -p1 < ../fix-build.patch patch -p1 < ../missing-include.patch } build() { CLANG_INSTALL_DIR="/usr" \ cmake -B build -S pyside-setup -G Ninja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_BUILD_TYPE=None \ -DSHIBOKEN_PYTHON_LIBRARIES=`pkgconf python3-embed --libs` \ -DBUILD_TESTS=OFF \ -DFORCE_LIMITED_API=no \ -DNO_QT_TOOLS=yes PYTHONPATH="$PWD"/build/sources \ cmake --build build } package_shiboken6() { pkgdesc='Generates bindings for C++ libraries using CPython source code' depends=(clang=$_clangver gcc-libs glibc libxml2 libxslt llvm python qt6-base) optdepends=('python: Python bindings') DESTDIR="$pkgdir" cmake --install build/sources/shiboken6 # Install egg-info export PATH="/usr/lib/qt6/bin:$PATH" cd pyside-setup python setup.py egg_info --build-type=shiboken6 python setup.py egg_info --build-type=shiboken6-generator _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"` cp -r shiboken6*.egg-info "$pkgdir"/$_pythonpath } package_pyside6() { pkgdesc='Enables the use of Qt6 APIs in Python applications' depends=(gcc-libs glibc python qt6-base qt6-declarative shiboken6) optdepends=('qt6-3d: Qt3D bindings' 'qt6-charts: QtCharts bindings' 'qt6-connectivity: QtBluetooth and QtNfc bindings' 'qt6-datavis3d: QtDataVisualization bindings' 'qt6-graphs: QtGraphs bindings' 'qt6-httpserver: QtHttpServer bindings' 'qt6-location: QtLocation bindings' 'qt6-multimedia: QtMultimedia bindings' 'qt6-networkauth: QtNetworkAuth bindings' 'qt6-positioning: QtPositioning bindings' 'qt6-quick3d: QtQuick3D bindings' 'qt6-remoteobjects: QtRemoteObjects bindings' 'qt6-scxml: QtScxml bindings' 'qt6-sensors: QtSensors bindings' 'qt6-serialbus: QtSerialBus bindings' 'qt6-serialport: QtSerialPort bindings' 'qt6-speech: QtTextToSpeech bindings' 'qt6-svg: QtSvg bindings' 'qt6-tools: QtHelp, QtUiTools bindings' 'qt6-webchannel: QtWebChannel bindings' 'qt6-webengine: QtWebEngine bindings' 'qt6-websockets: QtWebSockets bindings') provides=(qt6-python-bindings) DESTDIR="$pkgdir" cmake --install build/sources/pyside6 # Install egg-info export PATH="/usr/lib/qt6/bin:$PATH" cd pyside-setup python setup.py egg_info --build-type=pyside6 _pythonpath=`python -c "from sysconfig import get_path; print(get_path('platlib'))"` cp -r PySide6.egg-info "$pkgdir"/$_pythonpath # Install pyi files install -Dm644 "$srcdir"/build/sources/pyside6/PySide6/*.pyi -t "$pkgdir"/usr/lib/python*/site-packages/PySide6 } package_pyside6-tools() { pkgdesc='Tools for pyside6' depends=(pyside6 python) optdepends=('nuitka: for deploy.py') DESTDIR="$pkgdir" cmake --install build/sources/pyside-tools # Add convenience pyside6-designer wrapper # Entry points in /usr/bin are not installed in the cmake build. This is the only one that does anything besides wrapping the Qt executable echo "export LD_PRELOAD="`python -c "from sysconfig import get_config_var; print(get_config_var('LDLIBRARY'))"` > pyside6-designer echo "exec designer6 \$@" >> pyside6-designer install -Dm755 pyside6-designer -t "$pkgdir"/usr/bin }