nixpkgs/pkgs/development/python-modules/pyside2/default.nix
Alyssa Ross 2bfa93e01c
treewide: python{ => .pythonForBuild}.interpreter
It won't be enough to fix cross in all cases, but it is in at least
one: pywayland.  I've only made the change in cases I'm confident it's
correct, as it would be wrong to change this when python.interpreter
is used in wrappers, and possibly when it's used for running tests.
2023-02-26 20:26:17 +00:00

84 lines
1.9 KiB
Nix

{ python
, pythonAtLeast
, disabledIf
, fetchurl
, lib
, stdenv
, cmake
, libxcrypt
, ninja
, qt5
, shiboken2
}:
# Only build when Python<=3.10
# See https://bugreports.qt.io/browse/PYSIDE-1864
# "There are no plans to support Python versions > 3.10 in the 5.15 branch."
disabledIf (pythonAtLeast "3.11") (
stdenv.mkDerivation rec {
pname = "pyside2";
version = "5.15.5";
src = fetchurl {
url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
sha256 = "0cwvw6695215498rsbm2xzkwaxdr3w7zfvy4kc62c01k6pxs881r";
};
patches = [
./dont_ignore_optional_modules.patch
];
postPatch = ''
cd sources/pyside2
'';
cmakeFlags = [
"-DBUILD_TESTS=OFF"
"-DPYTHON_EXECUTABLE=${python.interpreter}"
];
env.NIX_CFLAGS_COMPILE = "-I${qt5.qtdeclarative.dev}/include/QtQuick/${qt5.qtdeclarative.version}/QtQuick";
nativeBuildInputs = [ cmake ninja qt5.qmake python ];
buildInputs = (with qt5; [
qtbase
qtxmlpatterns
qtmultimedia
qttools
qtx11extras
qtlocation
qtscript
qtwebsockets
qtwebengine
qtwebchannel
qtcharts
qtsensors
qtsvg
qt3d
]) ++ (with python.pkgs; [
setuptools
]) ++ (lib.optionals (python.pythonOlder "3.9") [
# see similar issue: 202262
# libxcrypt is required for crypt.h for building older python modules
libxcrypt
]);
propagatedBuildInputs = [ shiboken2 ];
dontWrapQtApps = true;
postInstall = ''
cd ../../..
${python.pythonForBuild.interpreter} setup.py egg_info --build-type=pyside2
cp -r PySide2.egg-info $out/${python.sitePackages}/
'';
meta = with lib; {
description = "LGPL-licensed Python bindings for Qt";
license = licenses.lgpl21;
homepage = "https://wiki.qt.io/Qt_for_Python";
maintainers = with maintainers; [ gebner ];
};
})