pytrainer: unpin python 3.10
[NixPkgs.git] / pkgs / by-name / wg / wgpu-utils / package.nix
blob80b7f6d0e7cd2d93629d45e8e6bbc3da250d0211
2   lib,
3   stdenv,
4   rustPlatform,
5   fetchFromGitHub,
6   pkg-config,
7   cmake,
8   makeWrapper,
9   vulkan-loader,
10   freetype,
11   fontconfig,
12   darwin,
15 rustPlatform.buildRustPackage rec {
16   pname = "wgpu-utils";
17   version = "22.1.0";
19   src = fetchFromGitHub {
20     owner = "gfx-rs";
21     repo = "wgpu";
22     rev = "v${version}";
23     hash = "sha256-Gtq0xYZoWNwW+BKVLqVVKGqc+4HjaD7NN1hlzyFP5g0=";
24   };
26   cargoLock = {
27     lockFile = ./Cargo.lock;
28     outputHashes = {
29       "noise-0.8.2" = "sha256-7GvShJeSNfwMCBIfqLghXgKQv7EDMqVchJw0uxPhNr4=";
30       "rspirv-0.11.0+sdk-1.2.198" = "sha256-AcJqkcXBr/+SHdUDXd63sQ0h5eosMqRhV4aUREJH8Bw=";
31     };
32   };
34   nativeBuildInputs = [
35     pkg-config
36     cmake
37     makeWrapper
38   ];
40   buildInputs =
41     [
42       freetype
43       fontconfig
44     ]
45     ++ lib.optionals stdenv.hostPlatform.isDarwin (
46       with darwin.apple_sdk.frameworks;
47       [
48         CoreServices
49         QuartzCore
50         AppKit
51       ]
52     );
54   # Tests fail, as the Nix sandbox doesn't provide an appropriate adapter (e.g. Vulkan).
55   doCheck = false;
57   postInstall = ''
58     wrapProgram $out/bin/wgpu-info \
59       --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
60   '';
62   meta = with lib; {
63     description = "Safe and portable GPU abstraction in Rust, implementing WebGPU API";
64     homepage = "https://wgpu.rs/";
65     license = with licenses; [
66       asl20 # or
67       mit
68     ];
69     maintainers = with maintainers; [ erictapen ];
70     mainProgram = "wgpu-info";
71   };