{ stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xf86vidmodeproto , gstreamer, gst-plugins-base, GConf, setfile , withMesa ? true, mesa ? null, compat24 ? false, compat26 ? true, unicode ? true , Carbon ? null, Cocoa ? null, Kernel ? null, QuickTime ? null, AGL ? null }: assert withMesa -> mesa != null; with stdenv.lib; let version = "2.9.4"; in stdenv.mkDerivation { name = "wxwidgets-${version}"; src = fetchurl { url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2"; sha256 = "04jda4bns7cmp7xy68qz112yg0lribpc6xs5k9gilfqcyhshqlvc"; }; buildInputs = [ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst-plugins-base GConf ] ++ optional withMesa mesa ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QuickTime ]; nativeBuildInputs = [ pkgconfig ]; propagatedBuildInputs = optional stdenv.isDarwin AGL; configureFlags = [ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl" (if compat24 then "--enable-compat24" else "--disable-compat24") (if compat26 then "--enable-compat26" else "--disable-compat26") ] ++ optional unicode "--enable-unicode" ++ optional withMesa "--with-opengl" ++ optionals stdenv.isDarwin # allow building on 64-bit [ "--with-cocoa" "--enable-universal-binaries" "--with-macosx-version-min=10.7" ]; SEARCH_LIB = optionalString withMesa "${mesa}/lib"; preConfigure = " substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE=' substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB=' substituteInPlace configure --replace /usr /no-such-path " + optionalString stdenv.isDarwin '' substituteInPlace configure --replace \ 'ac_cv_prog_SETFILE="/Developer/Tools/SetFile"' \ 'ac_cv_prog_SETFILE="${setfile}/bin/SetFile"' substituteInPlace configure --replace \ "-framework System" \ -lSystem ''; postInstall = " (cd $out/include && ln -s wx-*/* .) "; passthru = { inherit compat24 compat26 unicode; gtk = gtk2; }; enableParallelBuilding = true; meta = { platforms = with stdenv.lib.platforms; darwin ++ linux; }; }