|
33 | 33 | pkgs = import nixpkgs {
|
34 | 34 | inherit system overlays;
|
35 | 35 | };
|
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 { |
38 | 40 | 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" ]; |
40 | 46 | };
|
41 | 47 |
|
| 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 | + |
42 | 79 | libcef = pkgs.libcef.overrideAttrs (finalAttrs: previousAttrs: {
|
43 | 80 | version = "138.0.26";
|
44 | 81 | gitRevision = "84f2d27";
|
|
79 | 116 |
|
80 | 117 | # Development tools that don't need to be in LD_LIBRARY_PATH
|
81 | 118 | buildTools = [
|
82 |
| - rustc-wasm |
| 119 | + rust |
83 | 120 | pkgs.nodejs
|
84 | 121 | pkgs.nodePackages.npm
|
85 | 122 | pkgs.binaryen
|
|
91 | 128 |
|
92 | 129 | # Linker
|
93 | 130 | pkgs.mold
|
| 131 | + |
| 132 | + cargoRustGpuBuild |
94 | 133 | ];
|
95 | 134 | # Development tools that don't need to be in LD_LIBRARY_PATH
|
96 | 135 | devTools = with pkgs; [
|
|
0 commit comments