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