nixcitizen/dxvk.nix

45 lines
1.3 KiB
Nix
Raw Normal View History

2021-07-24 16:46:34 +02:00
{ stdenv, lib, fetchFromGitHub, fetchpatch, glslang, buildPackages, writeScriptBin, pkgs, pkgsCross,
async ? false
}:
2021-07-21 19:46:25 +02:00
let
fix = writeScriptBin "x86_64-w64-mingw32-windres" ''
#!${stdenv.shell}
exec ${pkgsCross.mingwW64.buildPackages.binutils.bintools}/bin/x86_64-w64-mingw32-windres --preprocessor=x86_64-w64-mingw32-gcc --preprocessor-arg=-E --preprocessor-arg=-xc --preprocessor-arg=-DRC_INVOKED $@
'';
2021-07-24 16:46:34 +02:00
asyncPatch = (fetchpatch {
name = "dxvk-async";
url = "https://raw.githubusercontent.com/Sporif/dxvk-async/8911d6da0f838efc8fbbea805da522be4e1ad6c3/dxvk-async.patch";
sha256 = "0mr43flzim25lfq73pac94ah07yrr86n82fzsx47lxlcmsh9zhrq";
});
2021-07-21 19:46:25 +02:00
in stdenv.mkDerivation rec {
pname = "dxvk";
2021-07-26 18:20:23 +02:00
version = "1.9.1";
2021-07-21 19:46:25 +02:00
2021-07-24 16:46:34 +02:00
patches = []
++ lib.lists.optional async asyncPatch;
2021-07-21 19:46:25 +02:00
src = fetchFromGitHub {
owner = "doitsujin";
repo = "dxvk";
rev = "v${version}";
2021-07-26 18:20:23 +02:00
sha256 = "06j0lcbrq1z5g19jr51mm3virnnmxznh83h57f49pz0wkryy6qrv";
2021-07-21 19:46:25 +02:00
};
CFLAGS="-fstack-protector";
CPPFLAGS="-fstack-protector";
mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
depsBuildBuild = [
fix
buildPackages.gcc
buildPackages.meson
buildPackages.ninja
glslang
];
depsBuildTarget = [
pkgs.windows.pthreads
];
}