Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 23.05 89 lines 1.9 kB view raw
1{ lib 2, stdenv 3, buildPythonPackage 4, fetchPypi 5, setuptools 6, pkg-config 7, which 8, cairo 9, pango 10, python 11, doxygen 12, ncurses 13, libintl 14, wxGTK 15, gtk3 16, IOKit 17, Carbon 18, Cocoa 19, AudioToolbox 20, OpenGL 21, CoreFoundation 22, pillow 23, numpy 24, six 25}: 26 27buildPythonPackage rec { 28 pname = "wxPython"; 29 version = "4.0.7.post2"; 30 format = "other"; 31 32 src = fetchPypi { 33 inherit pname version; 34 sha256 = "5a229e695b64f9864d30a5315e0c1e4ff5e02effede0a07f16e8d856737a0c4e"; 35 }; 36 37 doCheck = false; 38 39 nativeBuildInputs = [ pkg-config which doxygen setuptools wxGTK ]; 40 41 buildInputs = [ ncurses libintl ] 42 ++ (if stdenv.isDarwin 43 then 44 [ AudioToolbox Carbon Cocoa CoreFoundation IOKit OpenGL ] 45 else 46 [ gtk3 ] 47 ); 48 49 propagatedBuildInputs = [ 50 numpy 51 pillow 52 six 53 ]; 54 55 DOXYGEN = "${doxygen}/bin/doxygen"; 56 57 preConfigure = lib.optionalString (!stdenv.isDarwin) '' 58 substituteInPlace wx/lib/wxcairo/wx_pycairo.py \ 59 --replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")' 60 substituteInPlace wx/lib/wxcairo/wx_pycairo.py \ 61 --replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [ 62 ("gdk", "${gtk3}/lib/libgtk-x11-2.0.so"), 63 ("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"), 64 ("appsvc", None) 65 ]}' 66 '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' 67 # Remove the OSX-Only wx.webkit module 68 sed -i "s/makeETGRule(.*'WXWEBKIT')/pass/" wscript 69 ''; 70 71 buildPhase = '' 72 ${python.pythonForBuild.interpreter} build.py -v --use_syswx dox etg --nodoc sip build_py 73 ''; 74 75 installPhase = '' 76 ${python.pythonForBuild.interpreter} setup.py install --skip-build --prefix=$out 77 ''; 78 79 passthru = { wxWidgets = wxGTK; }; 80 81 82 meta = { 83 description = "Cross platform GUI toolkit for Python, Phoenix version"; 84 homepage = "http://wxpython.org/"; 85 license = lib.licenses.wxWindows; 86 broken = true; 87 }; 88 89}