1{ lib, stdenv, pythonPackages, fetchPypi, pkg-config
2, qmake, qtbase, qtsvg, qtwebengine
3, wrapQtAppsHook
4, darwin
5}:
6
7let
8 inherit (pythonPackages) buildPythonPackage python isPy27 pyqt5 sip pyqt-builder;
9 inherit (darwin) autoSignDarwinBinariesHook;
10in buildPythonPackage rec {
11 pname = "PyQtWebEngine";
12 version = "5.15.4";
13 format = "pyproject";
14
15 disabled = isPy27;
16
17 src = fetchPypi {
18 inherit pname version;
19 sha256 = "06fc35hzg346a9c86dk7vzm1fakkgzn5l52jfq3bix3587sjip6f";
20 };
21
22 postPatch = ''
23 substituteInPlace pyproject.toml \
24 --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
25 '';
26
27 outputs = [ "out" "dev" ];
28
29 nativeBuildInputs = [
30 pkg-config
31 qmake
32 sip
33 qtbase
34 qtsvg
35 qtwebengine
36 pyqt-builder
37 pythonPackages.setuptools
38 ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
39 autoSignDarwinBinariesHook
40 ];
41
42 buildInputs = [
43 sip
44 qtbase
45 qtsvg
46 qtwebengine
47 ];
48
49 propagatedBuildInputs = [ pyqt5 ];
50
51 dontWrapQtApps = true;
52
53 # Avoid running qmake, which is in nativeBuildInputs
54 dontConfigure = true;
55
56 # Checked using pythonImportsCheck
57 doCheck = false;
58
59 pythonImportsCheck = [
60 "PyQt5.QtWebEngine"
61 "PyQt5.QtWebEngineWidgets"
62 ];
63
64 enableParallelBuilding = true;
65
66 passthru = {
67 inherit wrapQtAppsHook;
68 };
69
70 meta = with lib; {
71 description = "Python bindings for Qt5";
72 homepage = "http://www.riverbankcomputing.co.uk";
73 license = licenses.gpl3;
74 platforms = lib.lists.intersectLists qtwebengine.meta.platforms platforms.mesaPlatforms;
75 };
76}