diff options
author | Matthew Bauer <mjbauer95@gmail.com> | 2017-04-23 15:15:46 -0500 |
---|---|---|
committer | Matthew Bauer <mjbauer95@gmail.com> | 2017-04-23 15:15:46 -0500 |
commit | 3cc4bfa7a372e611f46a6fe60d59bb3abcd36469 (patch) | |
tree | a44d03bd28f0df4086d5b2580682423a616fa8f4 /pkgs/development/libraries/wxwidgets | |
parent | 77e6529953f0846f892fe9a393e12272fa9ead90 (diff) | |
download | nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar.gz nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar.bz2 nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar.lz nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar.xz nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.tar.zst nixlib-3cc4bfa7a372e611f46a6fe60d59bb3abcd36469.zip |
wxwidgets: restructure into one folder
It’s easier to manage these in one folder. Affected folders from pkgs/development/libraries/: - wxGTK-2.8 - wxGTK-2.9 - wxGTK-3.0 - wxmac These will all go into pkgs/development/libraries/wxwidgets for now.
Diffstat (limited to 'pkgs/development/libraries/wxwidgets')
-rw-r--r-- | pkgs/development/libraries/wxwidgets/2.8/default.nix | 70 | ||||
-rw-r--r-- | pkgs/development/libraries/wxwidgets/2.9/default.nix | 72 | ||||
-rw-r--r-- | pkgs/development/libraries/wxwidgets/3.0/default.nix | 83 | ||||
-rw-r--r-- | pkgs/development/libraries/wxwidgets/3.0/mac.nix | 105 |
4 files changed, 330 insertions, 0 deletions
diff --git a/pkgs/development/libraries/wxwidgets/2.8/default.nix b/pkgs/development/libraries/wxwidgets/2.8/default.nix new file mode 100644 index 000000000000..9538f1dd1f85 --- /dev/null +++ b/pkgs/development/libraries/wxwidgets/2.8/default.nix @@ -0,0 +1,70 @@ +{ stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xf86vidmodeproto +, gstreamer, gst-plugins-base, GConf, libX11, cairo +, withMesa ? true, mesa_glu ? null, mesa_noglu ? null +, compat24 ? false, compat26 ? true, unicode ? true, +}: + +assert withMesa -> mesa_glu != null && mesa_noglu != null; + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "2.8.12.1"; + name = "wxGTK-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/wxpython/wxPython-src-${version}.tar.bz2"; + sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz"; + }; + + buildInputs = [ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer gst-plugins-base GConf libX11 cairo ] + ++ optional withMesa mesa_glu; + + nativeBuildInputs = [ pkgconfig ]; + + hardeningDisable = [ "format" ]; + + configureFlags = [ + "--enable-gtk2" + (if compat24 then "--enable-compat24" else "--disable-compat24") + (if compat26 then "--enable-compat26" else "--disable-compat26") + "--disable-precomp-headers" + (if unicode then "--enable-unicode" else "") + "--enable-mediactrl" + "--enable-graphics_ctx" + ] ++ optional withMesa "--with-opengl"; + + # These variables are used by configure to find some dependencies. + SEARCH_INCLUDE = + "${libXinerama.dev}/include ${libSM.dev}/include ${libXxf86vm.dev}/include"; + SEARCH_LIB = + "${libXinerama.out}/lib ${libSM.out}/lib ${libXxf86vm.out}/lib " + + optionalString withMesa "${mesa_glu.out}/lib ${mesa_noglu.out}/lib "; + + # Work around a bug in configure. + NIX_CFLAGS_COMPILE = [ "-DHAVE_X11_XLIB_H=1" "-lX11" "-lcairo" "-Wno-narrowing" ]; + + preConfigure = " + substituteInPlace configure --replace 'SEARCH_INCLUDE=' 'DUMMY_SEARCH_INCLUDE=' + substituteInPlace configure --replace 'SEARCH_LIB=' 'DUMMY_SEARCH_LIB=' + substituteInPlace configure --replace /usr /no-such-path + "; + + postBuild = "(cd contrib/src && make)"; + + postInstall = " + (cd contrib/src && make install) + (cd $out/include && ln -s wx-*/* .) + "; + + passthru = { + inherit compat24 compat26 unicode; + gtk = gtk2; + }; + + enableParallelBuilding = true; + + meta = { + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/development/libraries/wxwidgets/2.9/default.nix b/pkgs/development/libraries/wxwidgets/2.9/default.nix new file mode 100644 index 000000000000..28cd79b5549a --- /dev/null +++ b/pkgs/development/libraries/wxwidgets/2.9/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xf86vidmodeproto +, gstreamer, gst-plugins-base, GConf, setfile +, withMesa ? true, mesa_glu ? null, mesa_noglu ? null +, compat24 ? false, compat26 ? true, unicode ? true +, Carbon ? null, Cocoa ? null, Kernel ? null, QuickTime ? null, AGL ? null +}: + +assert withMesa -> mesa_glu != null && mesa_noglu != 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_glu + ++ 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 = "${mesa_glu.out}/lib ${mesa_noglu.out}/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; + }; +} diff --git a/pkgs/development/libraries/wxwidgets/3.0/default.nix b/pkgs/development/libraries/wxwidgets/3.0/default.nix new file mode 100644 index 000000000000..4fea863827f1 --- /dev/null +++ b/pkgs/development/libraries/wxwidgets/3.0/default.nix @@ -0,0 +1,83 @@ +{ stdenv, fetchurl, fetchpatch, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm +, xf86vidmodeproto , gstreamer, gst-plugins-base, GConf, setfile +, withMesa ? true, mesa_glu ? null, mesa_noglu ? null +, compat24 ? false, compat26 ? true, unicode ? true +, withWebKit ? false, webkitgtk2 ? null +, AGL ? null, Carbon ? null, Cocoa ? null, Kernel ? null, QTKit ? null +}: + + +assert withMesa -> mesa_glu != null && mesa_noglu != null; +assert withWebKit -> webkitgtk2 != null; + +with stdenv.lib; + +let + version = "3.0.2"; +in +stdenv.mkDerivation { + name = "wxwidgets-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2"; + sha256 = "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l"; + }; + + buildInputs = + [ gtk2 libXinerama libSM libXxf86vm xf86vidmodeproto gstreamer + gst-plugins-base GConf ] + ++ optional withMesa mesa_glu + ++ optional withWebKit webkitgtk2 + ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QTKit ]; + + nativeBuildInputs = [ pkgconfig ]; + + propagatedBuildInputs = optional stdenv.isDarwin AGL; + + patches = [ (fetchpatch { + url = "https://raw.githubusercontent.com/jessehager/MINGW-packages/af6ece963d8157dd3fbc710bcc190647c4924c63/mingw-w64-wxwidgets/wxWidgets-3.0.2-gcc6-abs.patch"; + sha256 = "0100pg0z7i6cjyysf2k3330pmqmdaxgc9hz6kxnfvc31dynjcq3h"; + }) ]; + + 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" ] + ++ optionals withWebKit + ["--enable-webview" "--enable-webview-webkit"]; + + SEARCH_LIB = "${mesa_glu.out}/lib ${mesa_noglu.out}/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; + }; +} diff --git a/pkgs/development/libraries/wxwidgets/3.0/mac.nix b/pkgs/development/libraries/wxwidgets/3.0/mac.nix new file mode 100644 index 000000000000..f4e714248338 --- /dev/null +++ b/pkgs/development/libraries/wxwidgets/3.0/mac.nix @@ -0,0 +1,105 @@ +{ stdenv, fetchurl, fetchpatch, expat, libiconv, libjpeg, libpng, libtiff, zlib +# darwin only attributes +, derez, rez, setfile +, AGL, Cocoa, Kernel +}: + +with stdenv.lib; + +stdenv.mkDerivation rec { + version = "3.0.2"; + name = "wxmac-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/wxwindows/wxWidgets-${version}.tar.bz2"; + sha256 = "346879dc554f3ab8d6da2704f651ecb504a22e9d31c17ef5449b129ed711585d"; + }; + + patches = + [ # Use std::abs() from <cmath> instead of abs() from <math.h> to avoid problems + # with abiguous overloads for clang-3.8 and gcc6. + (fetchpatch { + name = "patch-stc-abs.diff"; + url = https://github.com/wxWidgets/wxWidgets/commit/73e9e18ea09ffffcaac50237def0d9728a213c02.patch; + sha256 = "0w5whmfzm8waw62jmippming0zffa9064m5b3aw5nixph21rlcvq"; + }) + + # Various fixes related to Yosemite. Revisit in next stable release. + # Please keep an eye on http://trac.wxwidgets.org/ticket/16329 as well + # Theoretically the above linked patch should still be needed, but it isn't. + # Try to find out why. + (fetchpatch { + name = "patch-yosemite.diff"; + url = https://raw.githubusercontent.com/Homebrew/formula-patches/bbf4995/wxmac/patch-yosemite.diff; + sha256 = "0ss66z2a79v976mvlrskyj1zmkyaz8hbwm98p29bscfvcx5845jb"; + }) + + # Remove uncenessary <QuickTime/QuickTime.h> includes + # http://trac.wxwidgets.org/changeset/f6a2d1caef5c6d412c84aa900cb0d3990b350938/git-wxWidgets + (fetchpatch { + name = "patch-quicktime-removal.diff"; + url = https://raw.githubusercontent.com/Homebrew/formula-patches/bbf4995/wxmac/patch-quicktime-removal.diff; + sha256 = "0mzvdk8r70p9s1wj7qzdsqmdrlxlf2dalh9gqs8xjkqq2666yp0y"; + }) + + # Patch for wxOSXPrintData, custom paper not applied + # http://trac.wxwidgets.org/ticket/16959 + (fetchpatch { + name = "wxPaperCustomPatch.patch"; + url = http://trac.wxwidgets.org/raw-attachment/ticket/16959/wxPaperCustomPatch.patch; + sha256 = "0xgscv86f8dhggn9n8bhlq9wlj3ydsicgy9v35sraxyma18cbjvl"; + }) + ]; + + buildInputs = [ + expat libiconv libjpeg libpng libtiff zlib + derez rez setfile + Cocoa Kernel + ]; + + propagatedBuildInputs = [ AGL ]; + + postPatch = '' + substituteInPlace configure --replace "-framework System" -lSystem + ''; + + configureFlags = [ + "wx_cv_std_libfullpath=/var/empty" + "--with-macosx-version-min=10.7" + "--enable-unicode" + "--with-osx_cocoa" + "--enable-std_string" + "--enable-display" + "--with-opengl" + "--with-libjpeg" + "--with-libtiff" + "--without-liblzma" + "--with-libpng" + "--with-zlib" + "--enable-dnd" + "--enable-clipboard" + "--enable-webkit" + "--enable-svg" + "--enable-graphics_ctx" + "--enable-controls" + "--enable-dataviewctrl" + "--with-expat" + "--disable-precomp-headers" + "--disable-mediactrl" + ]; + + checkPhase = '' + ./wx-config --libs + ''; + + NIX_CFLAGS_COMPILE = "-Wno-undef"; + + doCheck = true; + + enableParallelBuilding = true; + + meta = { + platforms = platforms.darwin; + maintainers = [ maintainers.lnl7 ]; + }; +} |