1{ lib
2, stdenvNoCC
3, fetchFromGitHub
4, pkgsCross
5, stdenv
6, bash
7}:
8
9stdenvNoCC.mkDerivation (finalAttrs:
10 let
11 dxvk32 = if stdenv.isDarwin then pkgsCross.mingw32.dxvk_1 else pkgsCross.mingw32.dxvk_2;
12 dxvk64 = if stdenv.isDarwin then pkgsCross.mingwW64.dxvk_1 else pkgsCross.mingwW64.dxvk_2;
13 in
14 {
15 pname = "dxvk";
16 inherit (dxvk64) version;
17
18 outputs = [ "out" "bin" "lib" ];
19
20 dontUnpack = true;
21 dontConfigure = true;
22 dontBuild = true;
23
24 installPhase = ''
25 mkdir -p $out/bin $bin $lib
26 substitute ${./setup_dxvk.sh} $out/bin/setup_dxvk.sh \
27 --subst-var-by bash ${bash} \
28 --subst-var-by dxvk32 ${dxvk32} \
29 --subst-var-by dxvk64 ${dxvk64} \
30 --subst-var-by mcfgthreads32 "${pkgsCross.mingw32.windows.mcfgthreads}" \
31 --subst-var-by mcfgthreads64 "${pkgsCross.mingwW64.windows.mcfgthreads}"
32 chmod a+x $out/bin/setup_dxvk.sh
33 declare -A dxvks=( [x32]=${dxvk32} [x64]=${dxvk64} )
34 for arch in "''${!dxvks[@]}"; do
35 ln -s "''${dxvks[$arch]}/bin" $bin/$arch
36 ln -s "''${dxvks[$arch]}/lib" $lib/$arch
37 done
38 '';
39
40 meta = {
41 description = "Setup script for DXVK";
42 homepage = "https://github.com/doitsujin/dxvk";
43 changelog = "https://github.com/doitsujin/dxvk/releases";
44 maintainers = [ lib.maintainers.reckenrode ];
45 license = lib.licenses.zlib;
46 platforms = [ "x86_64-darwin" "i686-linux" "x86_64-linux" ];
47 };
48 })