{ stdenv, fetchurl, pkgconfig, gtk, libXinerama, libSM, libXxf86vm, xf86vidmodeproto , gstreamer, gst_plugins_base, GConf, setFile , withMesa ? true, mesa ? null, compat24 ? false, compat26 ? true, unicode ? true, }: 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 = [ gtk libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst_plugins_base GConf ] ++ optional withMesa mesa ++ optional stdenv.isDarwin setFile; nativeBuildInputs = [ pkgconfig ]; 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" ]; 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"' ''; postInstall = " (cd $out/include && ln -s wx-*/* .) "; passthru = {inherit gtk compat24 compat26 unicode;}; enableParallelBuilding = true; }