From c2a573365422f200e7d99823f29ba5ffec338579 Mon Sep 17 00:00:00 2001 From: Dmitry Kalinkin Date: Tue, 14 Feb 2017 20:26:17 -0500 Subject: [PATCH] wxPython: fix on darwin --- .../python-modules/wxPython/3.0.nix | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/wxPython/3.0.nix b/pkgs/development/python-modules/wxPython/3.0.nix index 8dc99955af31..defdc920d6e5 100644 --- a/pkgs/development/python-modules/wxPython/3.0.nix +++ b/pkgs/development/python-modules/wxPython/3.0.nix @@ -1,8 +1,11 @@ { fetchurl , lib +, stdenv +, darwin , openglSupport ? true , libX11 , wxGTK +, wxmac , pkgconfig , buildPythonPackage , pyopengl @@ -27,15 +30,27 @@ buildPythonPackage rec { hardeningDisable = [ "format" ]; - propagatedBuildInputs = [ pkgconfig wxGTK (wxGTK.gtk) libX11 ] ++ lib.optional openglSupport pyopengl; - preConfigure = "cd wxPython"; + propagatedBuildInputs = [ pkgconfig ] + ++ (lib.optional openglSupport pyopengl) + ++ (lib.optionals (!stdenv.isDarwin) [ wxGTK (wxGTK.gtk) libX11 ]) + ++ (lib.optionals stdenv.isDarwin [ wxmac darwin.apple_sdk.frameworks.Cocoa ]) + ; + preConfigure = '' + cd wxPython + # remove wxPython's darwin hack that interference with python-2.7-distutils-C++.patch + substituteInPlace config.py \ + --replace "distutils.unixccompiler.UnixCCompiler = MyUnixCCompiler" "" + # this check is supposed to only return false on older systems running non-framework python + substituteInPlace src/osx_cocoa/_core_wrap.cpp \ + --replace "return wxPyTestDisplayAvailable();" "return true;" + ''; - NIX_LDFLAGS = "-lX11 -lgdk-x11-2.0"; + NIX_LDFLAGS = lib.optionalString (!stdenv.isDarwin) "-lX11 -lgdk-x11-2.0"; buildPhase = ""; installPhase = '' - ${python.interpreter} setup.py install WXPORT=gtk2 NO_HEADERS=1 BUILD_GLCANVAS=${if openglSupport then "1" else "0"} UNICODE=1 --prefix=$out + ${python.interpreter} setup.py install WXPORT=${if stdenv.isDarwin then "osx_cocoa" else "gtk2"} NO_HEADERS=1 BUILD_GLCANVAS=${if openglSupport then "1" else "0"} UNICODE=1 --prefix=$out wrapPythonPrograms '';