wine: make features configurable

This commit is contained in:
Herwig Hochleitner
2016-05-29 10:45:16 +02:00
parent 98d720d72c
commit 1c215828d5
4 changed files with 124 additions and 23 deletions
+36 -15
View File
@@ -1,7 +1,7 @@
{ stdenv, lib, pkgArches,
name, version, src, monos, geckos, platforms,
pkgconfig, fontforge, makeWrapper, flex, bison,
pulseaudioSupport,
supportFlags,
buildScript ? null, configureFlags ? ""
}:
@@ -19,20 +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
libva libpcap saneBackends libv4l libgphoto2 gtk3 gsm openldap
opencl-headers opencl-icd gnome.glib cairo libtiff unixODBC
## for libnetapi
samba3_light
])
++ 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; [
libX11 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
@@ -40,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 ])))
);