diff options
Diffstat (limited to 'pkgs/by-name/dx/dxvk/package.nix')
-rw-r--r-- | pkgs/by-name/dx/dxvk/package.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/by-name/dx/dxvk/package.nix b/pkgs/by-name/dx/dxvk/package.nix new file mode 100644 index 00000000000..88b7e5b104f --- /dev/null +++ b/pkgs/by-name/dx/dxvk/package.nix @@ -0,0 +1,52 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, pkgsCross +, stdenv +, bash +}: + +stdenvNoCC.mkDerivation (finalAttrs: + let + dxvk32 = if stdenv.isDarwin + then pkgsCross.mingw32.dxvk_1.override { enableMoltenVKCompat = true; } + else pkgsCross.mingw32.dxvk_2; + dxvk64 = if stdenv.isDarwin + then pkgsCross.mingwW64.dxvk_1.override { enableMoltenVKCompat = true; } + else pkgsCross.mingwW64.dxvk_2; + in + { + pname = "dxvk"; + inherit (dxvk64) version; + + outputs = [ "out" "bin" "lib" ]; + + dontUnpack = true; + dontConfigure = true; + dontBuild = true; + + installPhase = '' + mkdir -p $out/bin $bin $lib + substitute ${./setup_dxvk.sh} $out/bin/setup_dxvk.sh \ + --subst-var-by bash ${bash} \ + --subst-var-by dxvk32 ${dxvk32} \ + --subst-var-by dxvk64 ${dxvk64} \ + --subst-var-by mcfgthreads32 "${pkgsCross.mingw32.windows.mcfgthreads_pre_gcc_13}" \ + --subst-var-by mcfgthreads64 "${pkgsCross.mingwW64.windows.mcfgthreads_pre_gcc_13}" + chmod a+x $out/bin/setup_dxvk.sh + declare -A dxvks=( [x32]=${dxvk32} [x64]=${dxvk64} ) + for arch in "''${!dxvks[@]}"; do + ln -s "''${dxvks[$arch]}/bin" $bin/$arch + ln -s "''${dxvks[$arch]}/lib" $lib/$arch + done + ''; + + meta = { + description = "Setup script for DXVK"; + homepage = "https://github.com/doitsujin/dxvk"; + changelog = "https://github.com/doitsujin/dxvk/releases"; + maintainers = [ lib.maintainers.reckenrode ]; + license = lib.licenses.zlib; + platforms = [ "x86_64-darwin" "i686-linux" "x86_64-linux" ]; + }; + }) |