57 lines
1.4 KiB
Nix
57 lines
1.4 KiB
Nix
{ pkgs, ... }:
|
|
|
|
let
|
|
extensions = [
|
|
"rust-src"
|
|
"rust-analyzer"
|
|
"clippy"
|
|
"cargo"
|
|
"rustc-dev"
|
|
"llvm-tools"
|
|
];
|
|
toolchain = pkgs.rust-bin.nightly."2026-04-11".default.override {
|
|
inherit extensions;
|
|
};
|
|
cargo = pkgs.writeShellScriptBin "cargo" ''
|
|
#!${pkgs.lib.getExe pkgs.bash}
|
|
|
|
filtered_args=()
|
|
for arg in "$@"; do
|
|
case "$arg" in
|
|
+nightly|+nightly-*) ;;
|
|
*) filtered_args+=("$arg") ;;
|
|
esac
|
|
done
|
|
|
|
exec ${toolchain}/bin/cargo ${"\${filtered_args[@]}"}
|
|
'';
|
|
rustc_codegen_spirv =
|
|
(pkgs.makeRustPlatform {
|
|
cargo = toolchain;
|
|
rustc = toolchain;
|
|
}).buildRustPackage
|
|
(finalAttrs: {
|
|
pname = "rustc_codegen_spirv";
|
|
version = "0.10.0-alpha.1";
|
|
src = pkgs.fetchCrate {
|
|
inherit (finalAttrs) pname version;
|
|
sha256 = "sha256-zJEpExkPgYzwo7fR4ge4GxJNj7H5yo4bJ4eTOw36+7c=";
|
|
};
|
|
cargoHash = "sha256-J1rtbfGqrL2NJ7Bu2pYfDwCdUmnECB/kzxrpYluA0kY=";
|
|
cargoBuildFlags = [
|
|
"-p"
|
|
"rustc_codegen_spirv"
|
|
"--features=use-compiled-tools"
|
|
"--no-default-features"
|
|
];
|
|
doCheck = false;
|
|
});
|
|
in
|
|
{
|
|
toolchain = toolchain;
|
|
env = {
|
|
RUST_GPU_PATH_OVERRIDE = "${cargo}/bin:${toolchain}/bin";
|
|
RUSTC_CODEGEN_SPIRV_PATH = "${rustc_codegen_spirv}/lib/librustc_codegen_spirv.so";
|
|
};
|
|
}
|