biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / graphics / gfxreconstruct / default.nix
blob78dabc68a61b047621398a0ca07cfcd9678b35a6
1 { stdenv
2 , fetchFromGitHub
3 , lib
4 , cmake
5 , makeWrapper
6 , pkg-config
7 , python3
8 , wayland
9 , libX11
10 , libxcb
11 , lz4
12 , vulkan-loader
13 , xcbutilkeysyms
14 , zlib
15 , zstd
18 stdenv.mkDerivation rec {
19   pname = "gfxreconstruct";
20   version = "1.0.4";
22   src = fetchFromGitHub {
23     owner = "LunarG";
24     repo = "gfxreconstruct";
25     rev = "v${version}";
26     hash = "sha256-MuCdJoBFxKwDCOCltlU3oBS9elFS6F251dHjHcIb4Jg=";
27     fetchSubmodules = true;
28   };
30   buildInputs = [
31     libX11
32     libxcb
33     lz4
34     python3
35     wayland
36     xcbutilkeysyms
37     zlib
38     zstd
39   ];
41   nativeBuildInputs = [
42     cmake
43     makeWrapper
44     pkg-config
45   ];
47   # The python script searches in subfolders, but we want to search in the same bin directory
48   prePatch = ''
49     substituteInPlace tools/gfxrecon/gfxrecon.py \
50       --replace "scriptdir, '..', cmd" 'scriptdir'
51   '';
53   # Fix the paths to load the layer.
54   # Also remove the .py suffix on files so that gfxrecon
55   # does not try to start the wrapper bash scripts with python.
56   postInstall = ''
57     substituteInPlace $out/share/vulkan/explicit_layer.d/VkLayer_gfxreconstruct.json \
58       --replace 'libVkLayer_gfxreconstruct.so' "$out/lib/libVkLayer_gfxreconstruct.so"
59     for f in $out/bin/*.py; do
60       mv -- "$f" "''${f%%.py}"
61     done
62     wrapProgram $out/bin/gfxrecon-capture-vulkan \
63       --prefix VK_ADD_LAYER_PATH : "$out/share/vulkan/explicit_layer.d"
64     wrapProgram $out/bin/gfxrecon-replay \
65       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
66   '';
68   meta = with lib; {
69     description = "Graphics API Capture and Replay Tools";
70     homepage = "https://github.com/LunarG/gfxreconstruct/";
71     changelog = "https://github.com/LunarG/gfxreconstruct/releases/tag/v${version}";
72     license = licenses.mit;
73     maintainers = with maintainers; [ Flakebi ];
74     platforms = platforms.linux;
75   };