nixpkgs/pkgs/development/python-modules/pyside6/default.nix
2023-05-12 08:45:37 +03:00

80 lines
1.6 KiB
Nix

{ lib
, stdenv
, cmake
, ninja
, qt6
, python
, moveBuildTree
, shiboken6
, libxcrypt
}:
stdenv.mkDerivation rec {
pname = "pyside6";
inherit (shiboken6) version src;
sourceRoot = "pyside-setup-everywhere-src-${lib.versions.majorMinor version}/sources/${pname}";
# FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
# reside in the same directory as QtCore.framework, which is not true for Nix.
postPatch = lib.optionalString stdenv.isLinux ''
# Don't ignore optional Qt modules
substituteInPlace cmake/PySideHelpers.cmake \
--replace \
'string(FIND "''${_module_dir}" "''${_core_abs_dir}" found_basepath)' \
'set (found_basepath 0)'
'';
nativeBuildInputs = [
cmake
ninja
python
] ++ lib.optionals stdenv.isDarwin [
moveBuildTree
];
buildInputs = with qt6; [
# required
qtbase
] ++ lib.optionals stdenv.isLinux [
# optional
qt3d
qtcharts
qtconnectivity
qtdatavis3d
qtdeclarative
qthttpserver
qtmultimedia
qtnetworkauth
qtquick3d
qtremoteobjects
qtscxml
qtsensors
qtspeech
qtsvg
qttools
qtwebchannel
qtwebengine
qtwebsockets
];
propagatedBuildInputs = [
shiboken6
];
cmakeFlags = [
"-DBUILD_TESTS=OFF"
];
dontWrapQtApps = true;
meta = with lib; {
description = "Python bindings for Qt";
license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
homepage = "https://wiki.qt.io/Qt_for_Python";
maintainers = with maintainers; [ gebner Enzime ];
platforms = platforms.all;
};
}