1{ lib 2, stdenv 3, buildPythonPackage 4, setuptools 5, pythonOlder 6, fetchPypi 7, substituteAll 8 9# build 10, autoPatchelfHook 11, attrdict 12, doxygen 13, pkg-config 14, python 15, sip 16, which 17 18# runtime 19, cairo 20, gst_all_1 21, gtk3 22, libGL 23, libGLU 24, libSM 25, libXinerama 26, libXtst 27, libXxf86vm 28, libglvnd 29, mesa 30, pango 31, SDL 32, webkitgtk 33, wxGTK 34, xorgproto 35 36# propagates 37, numpy 38, pillow 39, six 40}: 41 42buildPythonPackage rec { 43 pname = "wxPython"; 44 version = "4.2.1"; 45 format = "other"; 46 disabled = pythonOlder "3.7"; 47 48 src = fetchPypi { 49 inherit pname version; 50 hash = "sha256-5I3iEaZga/By7D+neHcda3RsALf0uXDrWHKN31bRPVw="; 51 }; 52 53 patches = [ 54 (substituteAll { 55 src = ./4.2-ctypes.patch; 56 libgdk = "${gtk3.out}/lib/libgdk-3.so"; 57 libpangocairo = "${pango}/lib/libpangocairo-1.0.so"; 58 libcairo = "${cairo}/lib/libcairo.so"; 59 }) 60 ]; 61 62 nativeBuildInputs = [ 63 attrdict 64 pkg-config 65 setuptools 66 SDL 67 sip 68 which 69 wxGTK 70 ] ++ lib.optionals stdenv.isLinux [ 71 autoPatchelfHook 72 ]; 73 74 buildInputs = [ 75 wxGTK 76 SDL 77 ] ++ lib.optionals stdenv.isLinux [ 78 gst_all_1.gst-plugins-base 79 gst_all_1.gstreamer 80 libGL 81 libGLU 82 libSM 83 libXinerama 84 libXtst 85 libXxf86vm 86 libglvnd 87 mesa 88 webkitgtk 89 xorgproto 90 ]; 91 92 propagatedBuildInputs = [ 93 numpy 94 pillow 95 six 96 ]; 97 98 buildPhase = '' 99 runHook preBuild 100 101 export DOXYGEN=${doxygen}/bin/doxygen 102 export PATH="${wxGTK}/bin:$PATH" 103 export SDL_CONFIG="${SDL.dev}/bin/sdl-config" 104 105 ${python.pythonOnBuildForHost.interpreter} build.py -v --use_syswx dox etg sip --nodoc build_py 106 107 runHook postBuild 108 ''; 109 110 111 installPhase = '' 112 runHook preInstall 113 114 ${python.pythonOnBuildForHost.interpreter} setup.py install --skip-build --prefix=$out 115 wrapPythonPrograms 116 117 runHook postInstall 118 ''; 119 120 checkPhase = '' 121 runHook preCheck 122 123 ${python.interpreter} build.py -v test 124 125 runHook postCheck 126 ''; 127 128 129 meta = with lib; { 130 changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${version}/CHANGES.rst"; 131 description = "Cross platform GUI toolkit for Python, Phoenix version"; 132 homepage = "http://wxpython.org/"; 133 license = licenses.wxWindows; 134 maintainers = with maintainers; [ hexa ]; 135 }; 136}