Skip to content

Commit c910907

Browse files
Try providing cargo-rust-gpu to nix devs
1 parent d2ddf94 commit c910907

File tree

1 file changed

+43
-4
lines changed

1 file changed

+43
-4
lines changed

.nix/flake.nix

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,49 @@
3333
pkgs = import nixpkgs {
3434
inherit system overlays;
3535
};
36-
37-
rustc-wasm = pkgs.rust-bin.stable.latest.default.override {
36+
37+
rustExtensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ];
38+
39+
rust = pkgs.rust-bin.stable.latest.default.override {
3840
targets = [ "wasm32-unknown-unknown" ];
39-
extensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ];
41+
extensions = rustExtensions;
42+
};
43+
44+
rustNightlyPkg = pkgs.rust-bin.nightly."2025-06-23".default.override {
45+
extensions = rustExtensions ++ [ "rustc-dev" "llvm-tools" ];
4046
};
4147

48+
rustPlatformNightly = pkgs.makeRustPlatform {
49+
cargo = rustNightlyPkg;
50+
rustc = rustNightlyPkg;
51+
};
52+
53+
rustc_codegen_spirv = (rustPlatformNightly.buildRustPackage.override {
54+
stdenv = pkgs.llvmPackages.stdenv;
55+
}) (finalAttrs: {
56+
pname = "rustc_codegen_spirv";
57+
version = "0-unstable-2025-08-04";
58+
src = pkgs.fetchFromGitHub {
59+
owner = "Rust-GPU";
60+
repo = "rust-gpu";
61+
rev = "df1628a032d22c864397417c2871b74d602af986";
62+
hash = "sha256-AFt3Nc+NqK8DxNUhDBcOUmk3XDVcoToVeFIMYNszdbY=";
63+
};
64+
cargoHash = "sha256-en3BYJWQabH064xeAwYQrvcr6EuWg/QjvsG+Jd6HHCk";
65+
66+
cargoBuildFlags = [ "-p" "rustc_codegen_spirv" ];
67+
68+
doCheck = false;
69+
});
70+
71+
cargoRustGpuBuild = pkgs.writeShellScriptBin "cargo-rust-gpu" ''
72+
#!${pkgs.bash}/bin/bash
73+
74+
export PATH="${pkgs.lib.makeBinPath [rustNightlyPkg]}"
75+
export RUSTFLAGS="-Zcodegen-backend=${rustc_codegen_spirv}/lib/librustc_codegen_spirv.so"
76+
exec cargo +nightly $@
77+
'';
78+
4279
libcef = pkgs.libcef.overrideAttrs (finalAttrs: previousAttrs: {
4380
version = "138.0.26";
4481
gitRevision = "84f2d27";
@@ -79,7 +116,7 @@
79116

80117
# Development tools that don't need to be in LD_LIBRARY_PATH
81118
buildTools = [
82-
rustc-wasm
119+
rust
83120
pkgs.nodejs
84121
pkgs.nodePackages.npm
85122
pkgs.binaryen
@@ -91,6 +128,8 @@
91128

92129
# Linker
93130
pkgs.mold
131+
132+
cargoRustGpuBuild
94133
];
95134
# Development tools that don't need to be in LD_LIBRARY_PATH
96135
devTools = with pkgs; [

0 commit comments

Comments
 (0)