depot/third_party/nixpkgs/pkgs/applications/emulators/wine/packages.nix

120 lines
2.4 KiB
Nix

{
stdenv_32bit,
lib,
pkgs,
pkgsi686Linux,
pkgsCross,
callPackage,
substituteAll,
moltenvk,
wineRelease ? "stable",
supportFlags,
}:
let
src = lib.getAttr wineRelease (callPackage ./sources.nix { });
in
with src;
{
wine32 = pkgsi686Linux.callPackage ./base.nix {
pname = "wine";
inherit
src
version
supportFlags
patches
moltenvk
wineRelease
;
pkgArches = [ pkgsi686Linux ];
geckos = [ gecko32 ];
mingwGccs = with pkgsCross; [ mingw32.buildPackages.gcc ];
monos = [ mono ];
platforms = [
"i686-linux"
"x86_64-linux"
];
};
wine64 = callPackage ./base.nix {
pname = "wine64";
inherit
src
version
supportFlags
patches
moltenvk
wineRelease
;
pkgArches = [ pkgs ];
mingwGccs = with pkgsCross; [ mingwW64.buildPackages.gcc ];
geckos = [ gecko64 ];
monos = [ mono ];
configureFlags = [ "--enable-win64" ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
mainProgram = "wine64";
};
wineWow = callPackage ./base.nix {
pname = "wine-wow";
inherit
src
version
supportFlags
patches
moltenvk
wineRelease
;
stdenv = stdenv_32bit;
pkgArches = [
pkgs
pkgsi686Linux
];
geckos = [
gecko32
gecko64
];
mingwGccs = with pkgsCross; [
mingw32.buildPackages.gcc
mingwW64.buildPackages.gcc
];
monos = [ mono ];
buildScript = substituteAll {
src = ./builder-wow.sh;
# pkgconfig has trouble picking the right architecture
pkgconfig64remove = lib.makeSearchPathOutput "dev" "lib/pkgconfig" [
pkgs.glib
pkgs.gst_all_1.gstreamer
];
};
platforms = [ "x86_64-linux" ];
mainProgram = "wine64";
};
wineWow64 = callPackage ./base.nix {
pname = "wine-wow64";
inherit
src
version
patches
moltenvk
wineRelease
;
supportFlags = supportFlags // {
mingwSupport = true;
}; # Required because we request "--enable-archs=x86_64"
pkgArches = [ pkgs ];
mingwGccs = with pkgsCross; [
mingw32.buildPackages.gcc
mingwW64.buildPackages.gcc
];
geckos = [ gecko64 ];
monos = [ mono ];
configureFlags = [ "--enable-archs=x86_64,i386" ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
mainProgram = "wine";
};
}