summary refs log tree commit diff
path: root/pkgs/development/libraries/wxwidgets
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2017-04-23 15:15:46 -0500
committerMatthew Bauer <mjbauer95@gmail.com>2017-04-23 15:15:46 -0500
commit3cc4bfa7a372e611f46a6fe60d59bb3abcd36469 (patch)
treea44d03bd28f0df4086d5b2580682423a616fa8f4 /pkgs/development/libraries/wxwidgets
parent77e6529953f0846f892fe9a393e12272fa9ead90 (diff)
downloadnixlib-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.nix70
-rw-r--r--pkgs/development/libraries/wxwidgets/2.9/default.nix72
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/default.nix83
-rw-r--r--pkgs/development/libraries/wxwidgets/3.0/mac.nix105
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 ];
+  };
+}