1{ lib 2, stdenv 3, buildPythonPackage 4, fetchPypi 5, pkg-config 6, which 7, cairo 8, pango 9, python 10, doxygen 11, ncurses 12, libintl 13, wxGTK 14, wxmac 15, IOKit 16, Carbon 17, Cocoa 18, AudioToolbox 19, OpenGL 20, CoreFoundation 21, pillow 22, numpy 23}: 24 25buildPythonPackage rec { 26 pname = "wxPython"; 27 version = "4.0.7.post2"; 28 29 src = fetchPypi { 30 inherit pname version; 31 sha256 = "5a229e695b64f9864d30a5315e0c1e4ff5e02effede0a07f16e8d856737a0c4e"; 32 }; 33 34 doCheck = false; 35 36 nativeBuildInputs = [ pkg-config which doxygen ] 37 ++ (if stdenv.isDarwin then [ wxmac ] else [ wxGTK ]); 38 39 buildInputs = [ ncurses libintl ] 40 ++ (if stdenv.isDarwin 41 then 42 [ AudioToolbox Carbon Cocoa CoreFoundation IOKit OpenGL ] 43 else 44 [ wxGTK.gtk ] 45 ); 46 47 propagatedBuildInputs = [ pillow numpy ]; 48 49 DOXYGEN = "${doxygen}/bin/doxygen"; 50 51 preConfigure = lib.optionalString (!stdenv.isDarwin) '' 52 substituteInPlace wx/lib/wxcairo/wx_pycairo.py \ 53 --replace 'cairoLib = None' 'cairoLib = ctypes.CDLL("${cairo}/lib/libcairo.so")' 54 substituteInPlace wx/lib/wxcairo/wx_pycairo.py \ 55 --replace '_dlls = dict()' '_dlls = {k: ctypes.CDLL(v) for k, v in [ 56 ("gdk", "${wxGTK.gtk}/lib/libgtk-x11-2.0.so"), 57 ("pangocairo", "${pango.out}/lib/libpangocairo-1.0.so"), 58 ("appsvc", None) 59 ]}' 60 ''; 61 62 buildPhase = '' 63 ${python.interpreter} build.py -v --use_syswx dox etg --nodoc sip build_py 64 ''; 65 66 installPhase = '' 67 ${python.interpreter} setup.py install --skip-build --prefix=$out 68 ''; 69 70 passthru = { wxWidgets = if stdenv.isDarwin then wxmac else wxGTK; }; 71 72 73 meta = { 74 description = "Cross platform GUI toolkit for Python, Phoenix version"; 75 homepage = "http://wxpython.org/"; 76 license = lib.licenses.wxWindows; 77 }; 78 79}