about summary refs log tree commit diff
path: root/pkgs/misc/emulators/wine/base.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/emulators/wine/base.nix')
-rw-r--r--pkgs/misc/emulators/wine/base.nix45
1 files changed, 36 insertions, 9 deletions
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index 0398ed57a702..f5b64f1517f6 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, pkgArches,
   name, version, src, monos, geckos, platforms,
   pkgconfig, fontforge, makeWrapper, flex, bison,
-  pulseaudioSupport,
+  supportFlags,
   buildScript ? null, configureFlags ? ""
 }:
 
@@ -19,14 +19,41 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
     pkgconfig fontforge makeWrapper flex bison
   ];
 
-  buildInputs = toBuildInputs pkgArches (pkgs: (with pkgs; [
-    freetype fontconfig mesa mesa_noglu.osmesa libdrm libpng libjpeg openssl gnutls cups ncurses
-    alsaLib libxml2 libxslt lcms2 gettext dbus mpg123 openal
-  ])
-  ++ lib.optional pulseaudioSupport pkgs.libpulseaudio
+  buildInputs = toBuildInputs pkgArches (with supportFlags; (pkgs:
+  [ pkgs.freetype ]
+  ++ lib.optional pngSupport             pkgs.libpng
+  ++ lib.optional jpegSupport            pkgs.libjpeg
+  ++ lib.optional cupsSupport            pkgs.cups
+  ++ lib.optional colorManagementSupport pkgs.lcms2
+  ++ lib.optional gettextSupport         pkgs.gettext
+  ++ lib.optional dbusSupport            pkgs.dbus
+  ++ lib.optional mpg123Support          pkgs.mpg123
+  ++ lib.optional openalSupport          pkgs.openal
+  ++ lib.optional cairoSupport           pkgs.cairo
+  ++ lib.optional tiffSupport            pkgs.libtiff
+  ++ lib.optional odbcSupport            pkgs.unixODBC
+  ++ lib.optional netapiSupport          pkgs.samba3_light
+  ++ lib.optional cursesSupport          pkgs.ncurses
+  ++ lib.optional vaSupport              pkgs.libva
+  ++ lib.optional pcapSupport            pkgs.libpcap
+  ++ lib.optional v4lSupport             pkgs.libv4l
+  ++ lib.optional saneSupport            pkgs.saneBackends
+  ++ lib.optional gsmSupport             pkgs.gsm
+  ++ lib.optional gphoto2Support         pkgs.libgphoto2
+  ++ lib.optional ldapSupport            pkgs.openldap
+  ++ lib.optional fontconfigSupport      pkgs.fontconfig
+  ++ lib.optional alsaSupport            pkgs.alsaLib
+  ++ lib.optional pulseaudioSupport      pkgs.libpulseaudio
+  ++ lib.optional xineramaSupport        pkgs.xorg.libXinerama
+  ++ lib.optional gstreamerSupport       pkgs.gst_plugins_base
+  ++ lib.optionals gtkSupport    [ pkgs.gtk3 pkgs.gnome.glib ]
+  ++ lib.optionals openclSupport [ pkgs.opencl-headers pkgs.opencl-icd ]
+  ++ lib.optionals xmlSupport    [ pkgs.libxml2 pkgs.libxslt ]
+  ++ lib.optionals tlsSupport    [ pkgs.openssl pkgs.gnutls ]
+  ++ lib.optionals openglSupport [ pkgs.mesa pkgs.mesa_noglu.osmesa pkgs.libdrm ]
   ++ (with pkgs.xorg; [
-    libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite libXext
-  ]));
+    libX11  libXi libXcursor libXrandr libXrender libXxf86vm libXcomposite libXext
+  ])));
 
   # Wine locates a lot of libraries dynamically through dlopen().  Add
   # them to the RPATH so that the user doesn't have to set them in
@@ -34,7 +61,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
   NIX_LDFLAGS = map (path: "-rpath " + path) (
       map (x: "${lib.getLib x}/lib") ([ stdenv.cc.cc ] ++ buildInputs)
       # libpulsecommon.so is linked but not found otherwise
-      ++ lib.optionals pulseaudioSupport (map (x: "${lib.getLib x}/lib/pulseaudio")
+      ++ lib.optionals supportFlags.pulseaudioSupport (map (x: "${lib.getLib x}/lib/pulseaudio")
           (toBuildInputs pkgArches (pkgs: [ pkgs.libpulseaudio ])))
     );