Skip to content

Commit 45eedf9

Browse files
timon-schellingFirestar99
authored andcommitted
Try providing cargo-rust-gpu to nix devs
1 parent ace6707 commit 45eedf9

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

.nix/flake.nix

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,48 @@
3434
inherit system overlays;
3535
};
3636

37-
rustc-wasm = pkgs.rust-bin.stable.latest.default.override {
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 = "139.0.17";
4481
gitRevision = "6c347eb";
@@ -85,7 +122,7 @@
85122

86123
# Development tools that don't need to be in LD_LIBRARY_PATH
87124
buildTools = [
88-
rustc-wasm
125+
rust
89126
pkgs.nodejs
90127
pkgs.nodePackages.npm
91128
pkgs.binaryen
@@ -97,6 +134,8 @@
97134

98135
# Linker
99136
pkgs.mold
137+
138+
cargoRustGpuBuild
100139
];
101140
# Development tools that don't need to be in LD_LIBRARY_PATH
102141
devTools = with pkgs; [

0 commit comments

Comments
 (0)