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