vuls: init at 0.27.0 (#348530)
[NixPkgs.git] / pkgs / tools / graphics / vulkan-tools-lunarg / default.nix
blobbef94286ac80fa84734082140ae97f1cdc84d489
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , python3
6 , jq
7 , expat
8 , jsoncpp
9 , libX11
10 , libXdmcp
11 , libXrandr
12 , libffi
13 , libxcb
14 , pkg-config
15 , wayland
16 , which
17 , xcbutilkeysyms
18 , xcbutilwm
19 , valijson
20 , vulkan-headers
21 , vulkan-loader
22 , vulkan-utility-libraries
23 , writeText
24 , libsForQt5
27 stdenv.mkDerivation rec {
28   pname = "vulkan-tools-lunarg";
29   version = "1.3.290.0";
31   src = fetchFromGitHub {
32    owner = "LunarG";
33    repo = "VulkanTools";
34    rev = "vulkan-sdk-${version}";
35    hash = "sha256-APJRiO5xNHml3k9goFQKwmxb3BXDN7tmvcs/oNCVU58=";
36  };
38   nativeBuildInputs = [ cmake python3 jq which pkg-config libsForQt5.qt5.wrapQtAppsHook ];
40   buildInputs = [
41     expat
42     jsoncpp
43     libX11
44     libXdmcp
45     libXrandr
46     libffi
47     libxcb
48     valijson
49     vulkan-headers
50     vulkan-loader
51     vulkan-utility-libraries
52     wayland
53     xcbutilkeysyms
54     xcbutilwm
55     libsForQt5.qt5.qtbase
56     libsForQt5.qt5.qtwayland
57   ];
59   cmakeFlags = [
60     "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
61   ];
63   preConfigure = ''
64     patchShebangs scripts/*
65     substituteInPlace via/CMakeLists.txt --replace "jsoncpp_static" "jsoncpp"
66   '';
68   # Include absolute paths to layer libraries in their associated
69   # layer definition json files.
70   preFixup = ''
71     for f in "$out"/etc/vulkan/explicit_layer.d/*.json "$out"/etc/vulkan/implicit_layer.d/*.json; do
72       jq <"$f" >tmp.json ".layer.library_path = \"$out/lib/\" + .layer.library_path"
73       mv tmp.json "$f"
74     done
75   '';
77   # Help vulkan-loader find the validation layers
78   setupHook = writeText "setup-hook" ''
79     export XDG_CONFIG_DIRS=@out@/etc''${XDG_CONFIG_DIRS:+:''${XDG_CONFIG_DIRS}}
80   '';
82   meta = with lib; {
83     description = "LunarG Vulkan Tools and Utilities";
84     longDescription = ''
85       Tools to aid in Vulkan development including useful layers, trace and
86       replay, and tests.
87     '';
88     homepage = "https://github.com/LunarG/VulkanTools";
89     platforms = platforms.linux;
90     license = licenses.asl20;
91     maintainers = [ maintainers.expipiplus1 ];
92   };