summaryrefslogtreecommitdiff
path: root/pkgs/top-level/wine-packages.nix
blob: 627b190bf5d955c7915637768711fc364a034a4e (about) (plain)
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
64
65
66
67
68
69
70
71
72
73
74
{
  lib,
  stdenv,
  config,
  callPackage,
  wineBuild,
}:

rec {
  fonts = callPackage ../applications/emulators/wine/fonts.nix { };
  minimal = callPackage ../applications/emulators/wine {
    wineRelease = config.wine.release or "stable";
    inherit wineBuild;
  };

  base = minimal.override {
    gettextSupport = true;
    fontconfigSupport = stdenv.hostPlatform.isLinux;
    alsaSupport = stdenv.hostPlatform.isLinux;
    openglSupport = true;
    vulkanSupport = true;
    tlsSupport = true;
    cupsSupport = true;
    dbusSupport = stdenv.hostPlatform.isLinux;
    cairoSupport = stdenv.hostPlatform.isLinux;
    cursesSupport = true;
    saneSupport = stdenv.hostPlatform.isLinux;
    pulseaudioSupport = config.pulseaudio or stdenv.hostPlatform.isLinux;
    udevSupport = stdenv.hostPlatform.isLinux;
    xineramaSupport = stdenv.hostPlatform.isLinux;
    sdlSupport = true;
    mingwSupport = true;
    usbSupport = true;
    waylandSupport = stdenv.hostPlatform.isLinux;
    x11Support = stdenv.hostPlatform.isLinux;
    ffmpegSupport = true;
  };

  full = base.override {
    gtkSupport = stdenv.hostPlatform.isLinux;
    gstreamerSupport = true;
    openclSupport = true;
    odbcSupport = true;
    netapiSupport = stdenv.hostPlatform.isLinux;
    vaSupport = stdenv.hostPlatform.isLinux;
    pcapSupport = true;
    v4lSupport = stdenv.hostPlatform.isLinux;
    gphoto2Support = true;
    krb5Support = true;
    embedInstallers = true;
  };

  stable = base.override { wineRelease = "stable"; };
  stableFull = full.override { wineRelease = "stable"; };

  unstable = base.override { wineRelease = "unstable"; };
  unstableFull = full.override { wineRelease = "unstable"; };

  staging = base.override { wineRelease = "staging"; };
  stagingFull = full.override { wineRelease = "staging"; };

  wayland = base.override {
    x11Support = false;
  };
  waylandFull = full.override {
    x11Support = false;
  };

  yabridge =
    let
      yabridge = base.override { wineRelease = "yabridge"; };
    in
    if wineBuild == "wineWow" then yabridge else lib.dontDistribute yabridge;
}