2024-06-05 15:53:02 +00:00
|
|
|
{
|
|
|
|
python,
|
2024-09-19 14:19:46 +00:00
|
|
|
pythonAtLeast,
|
2024-06-05 15:53:02 +00:00
|
|
|
fetchurl,
|
|
|
|
lib,
|
|
|
|
stdenv,
|
|
|
|
cmake,
|
|
|
|
libxcrypt,
|
|
|
|
ninja,
|
|
|
|
qt5,
|
|
|
|
shiboken2,
|
2022-12-28 21:21:41 +00:00
|
|
|
}:
|
2020-04-24 23:36:52 +00:00
|
|
|
stdenv.mkDerivation rec {
|
|
|
|
pname = "pyside2";
|
2024-09-19 14:19:46 +00:00
|
|
|
version = "5.15.14";
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
src = fetchurl {
|
2020-08-20 17:08:02 +00:00
|
|
|
url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
|
2024-09-19 14:19:46 +00:00
|
|
|
hash = "sha256-MmURlPamt7zkLwTmixQBrSCH5HiaTI8/uGSehhicY3I=";
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
|
2024-09-19 14:19:46 +00:00
|
|
|
patches = [
|
|
|
|
./nix_compile_cflags.patch
|
|
|
|
./Final-details-to-enable-3.12-wheel-compatibility.patch
|
|
|
|
./Python-3.12-Fix-the-structure-of-class-property.patch
|
|
|
|
./Support-running-PySide-on-Python-3.12.patch
|
|
|
|
./shiboken2-clang-Fix-and-simplify-resolveType-helper.patch
|
|
|
|
./shiboken2-clang-Fix-build-with-clang-16.patch
|
|
|
|
./shiboken2-clang-Fix-clashes-between-type-name-and-enumera.patch
|
|
|
|
./shiboken2-clang-Record-scope-resolution-of-arguments-func.patch
|
|
|
|
./shiboken2-clang-Remove-typedef-expansion.patch
|
|
|
|
./shiboken2-clang-Suppress-class-scope-look-up-for-paramete.patch
|
|
|
|
./shiboken2-clang-Write-scope-resolution-for-all-parameters.patch
|
|
|
|
./dont_ignore_optional_modules.patch
|
|
|
|
./Modify-sendCommand-signatures.patch
|
|
|
|
];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2024-09-19 14:19:46 +00:00
|
|
|
postPatch =
|
|
|
|
(lib.optionalString (pythonAtLeast "3.12") ''
|
|
|
|
substituteInPlace \
|
|
|
|
ez_setup.py \
|
|
|
|
build_scripts/main.py \
|
|
|
|
build_scripts/options.py \
|
|
|
|
build_scripts/utils.py \
|
|
|
|
build_scripts/wheel_override.py \
|
|
|
|
build_scripts/wheel_utils.py \
|
|
|
|
sources/pyside2/CMakeLists.txt \
|
|
|
|
--replace-fail "from distutils" "import setuptools; from distutils"
|
|
|
|
substituteInPlace \
|
|
|
|
build_scripts/config.py \
|
|
|
|
build_scripts/main.py \
|
|
|
|
build_scripts/options.py \
|
|
|
|
build_scripts/setup_runner.py \
|
|
|
|
build_scripts/utils.py \
|
|
|
|
--replace-fail "import distutils" "import setuptools; import distutils"
|
|
|
|
'')
|
|
|
|
+ ''
|
|
|
|
cd sources/pyside2
|
|
|
|
'';
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
cmakeFlags = [
|
|
|
|
"-DBUILD_TESTS=OFF"
|
|
|
|
"-DPYTHON_EXECUTABLE=${python.interpreter}"
|
|
|
|
];
|
|
|
|
|
2023-03-04 12:14:45 +00:00
|
|
|
env.NIX_CFLAGS_COMPILE = "-I${qt5.qtdeclarative.dev}/include/QtQuick/${qt5.qtdeclarative.version}/QtQuick";
|
2022-11-21 17:40:18 +00:00
|
|
|
|
2024-06-05 15:53:02 +00:00
|
|
|
nativeBuildInputs = [
|
|
|
|
cmake
|
|
|
|
ninja
|
|
|
|
qt5.qmake
|
|
|
|
python
|
2024-09-19 14:19:46 +00:00
|
|
|
python.pkgs.setuptools
|
2024-06-05 15:53:02 +00:00
|
|
|
];
|
2022-12-28 21:21:41 +00:00
|
|
|
|
2024-06-05 15:53:02 +00:00
|
|
|
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
|
|
|
|
]);
|
2022-12-28 21:21:41 +00:00
|
|
|
|
2020-06-15 15:56:04 +00:00
|
|
|
propagatedBuildInputs = [ shiboken2 ];
|
2020-04-24 23:36:52 +00:00
|
|
|
|
2021-02-19 19:06:45 +00:00
|
|
|
dontWrapQtApps = true;
|
|
|
|
|
2022-07-18 16:21:45 +00:00
|
|
|
postInstall = ''
|
|
|
|
cd ../../..
|
2023-11-16 04:20:00 +00:00
|
|
|
${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=pyside2
|
2022-07-18 16:21:45 +00:00
|
|
|
cp -r PySide2.egg-info $out/${python.sitePackages}/
|
|
|
|
'';
|
|
|
|
|
2021-01-15 22:18:51 +00:00
|
|
|
meta = with lib; {
|
2020-04-24 23:36:52 +00:00
|
|
|
description = "LGPL-licensed Python bindings for Qt";
|
|
|
|
license = licenses.lgpl21;
|
|
|
|
homepage = "https://wiki.qt.io/Qt_for_Python";
|
|
|
|
maintainers = with maintainers; [ gebner ];
|
2024-07-27 06:49:29 +00:00
|
|
|
platforms = platforms.all;
|
|
|
|
broken = stdenv.isDarwin;
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
2023-11-16 04:20:00 +00:00
|
|
|
}
|