about summary refs log tree commit diff
path: root/pkgs/misc/emulators/wine/default.nix
blob: 191fd4b29800c9d6106ca823a2ce0d2c729dbb69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
## Configuration:
# Control you default wine config in nixpkgs-config:
# wine = {
#   release = "stable"; # "stable", "unstable", "staging", "wayland"
#   build = "wineWow"; # "wine32", "wine64", "wineWow"
# };
# Make additional configurations on demand:
# wine.override { wineBuild = "wine32"; wineRelease = "staging"; };
{ lib, stdenv, callPackage,
  wineRelease ? "stable",
  wineBuild ? if stdenv.hostPlatform.system == "x86_64-linux" then "wineWow" else "wine32",
  gettextSupport ? false,
  fontconfigSupport ? false,
  alsaSupport ? false,
  gtkSupport ? false,
  openglSupport ? false,
  tlsSupport ? false,
  gstreamerSupport ? false,
  cupsSupport ? false,
  dbusSupport ? false,
  openalSupport ? false,
  openclSupport ? false,
  cairoSupport ? false,
  odbcSupport ? false,
  netapiSupport ? false,
  cursesSupport ? false,
  vaSupport ? false,
  pcapSupport ? false,
  v4lSupport ? false,
  saneSupport ? false,
  gphoto2Support ? false,
  ldapSupport ? false,
  pulseaudioSupport ? false,
  udevSupport ? false,
  xineramaSupport ? false,
  vulkanSupport ? false,
  sdlSupport ? false,
  vkd3dSupport ? false,
  mingwSupport ? wineRelease != "stable",
  waylandSupport ? wineRelease == "wayland",
  embedInstallers ? false # The Mono and Gecko MSI installers
}:

let wine-build = build: release:
      lib.getAttr build (callPackage ./packages.nix {
        wineRelease = release;
        supportFlags = {
          inherit
            cupsSupport gettextSupport dbusSupport openalSupport cairoSupport
            odbcSupport netapiSupport cursesSupport vaSupport pcapSupport
            v4lSupport saneSupport gphoto2Support ldapSupport fontconfigSupport
            alsaSupport pulseaudioSupport xineramaSupport gtkSupport openclSupport
            tlsSupport openglSupport gstreamerSupport udevSupport vulkanSupport
            sdlSupport vkd3dSupport mingwSupport waylandSupport embedInstallers;
        };
      });

in if wineRelease == "staging" then
  callPackage ./staging.nix {
    wineUnstable = wine-build wineBuild "unstable";
  }
else
  wine-build wineBuild wineRelease