Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / qscintilla-qt5 / default.nix
blob46622bc3e9911e56025a4e3b370f9a221614e433
1 { lib
2 , pythonPackages
3 , qscintilla
4 , qtbase
5 , qmake
6 , qtmacextras
7 , stdenv
8 }:
10 let
11   inherit (pythonPackages) buildPythonPackage isPy3k python sip sipbuild pyqt5 pyqt-builder;
12 in buildPythonPackage rec {
13   pname = "qscintilla-qt5";
14   version = qscintilla.version;
15   src = qscintilla.src;
16   format = "pyproject";
18   disabled = !isPy3k;
20   nativeBuildInputs = [ sip qmake pyqt-builder qscintilla pythonPackages.setuptools ];
21   buildInputs = [ qtbase ];
22   propagatedBuildInputs = [ pyqt5 ] ++ lib.optionals stdenv.isDarwin [ qtmacextras ];
24   dontWrapQtApps = true;
26   postPatch = ''
27     cd Python
28     cp pyproject-qt5.toml pyproject.toml
29     echo '[tool.sip.project]' >> pyproject.toml
30     echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \
31        >> pyproject.toml
32   '' + lib.optionalString stdenv.isDarwin ''
33     substituteInPlace project.py \
34       --replace \
35       "if self.project.qsci_external_lib:
36                 if self.qsci_features_dir is not None:" \
37       "if self.project.qsci_external_lib:
38                 self.builder_settings.append('QT += widgets')
40                 self.builder_settings.append('QT += printsupport')
42                 if self.qsci_features_dir is not None:"
43   '';
45   dontConfigure = true;
47   build = ''
48     sip-install --qsci-features-dir ${qscintilla}/mkspecs/features \
49     --qsci-include-dir ${qscintilla}/include \
50     --qsci-library-dir ${qscintilla}/lib --api-dir ${qscintilla}/share";
51   '';
52   postInstall = ''
53     # Needed by pythonImportsCheck to find the module
54     export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
55   '';
57   # Checked using pythonImportsCheck
58   doCheck = false;
60   pythonImportsCheck = [ "PyQt5.Qsci" ];
62   meta = with lib; {
63     description = "A Python binding to QScintilla, Qt based text editing control";
64     license = licenses.lgpl21Plus;
65     maintainers = with maintainers; [ lsix ];
66     homepage = "https://www.riverbankcomputing.com/software/qscintilla/";
67   };