|
34 | 34 | inherit system overlays;
|
35 | 35 | };
|
36 | 36 |
|
37 |
| - rustc-wasm = pkgs.rust-bin.stable.latest.default.override { |
| 37 | + rustExtensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ]; |
| 38 | + rust = pkgs.rust-bin.stable.latest.default.override { |
38 | 39 | targets = [ "wasm32-unknown-unknown" ];
|
39 |
| - extensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ]; |
| 40 | + extensions = rustExtensions; |
40 | 41 | };
|
41 | 42 |
|
| 43 | + rustGPUToolchainPkg = pkgs.rust-bin.nightly."2025-06-23".default.override { |
| 44 | + extensions = rustExtensions ++ [ "rustc-dev" "llvm-tools" ]; |
| 45 | + }; |
| 46 | + rustGPUToolchainRustPlatform = pkgs.makeRustPlatform { |
| 47 | + cargo = rustGPUToolchainPkg; |
| 48 | + rustc = rustGPUToolchainPkg; |
| 49 | + }; |
| 50 | + rustc_codegen_spirv = rustGPUToolchainRustPlatform.buildRustPackage (finalAttrs: { |
| 51 | + pname = "rustc_codegen_spirv"; |
| 52 | + version = "0-unstable-2025-08-04"; |
| 53 | + src = pkgs.fetchFromGitHub { |
| 54 | + owner = "Rust-GPU"; |
| 55 | + repo = "rust-gpu"; |
| 56 | + rev = "c12f216121820580731440ee79ebc7403d6ea04f"; |
| 57 | + hash = "sha256-rG1cZvOV0vYb1dETOzzbJ0asYdE039UZImobXZfKIno="; |
| 58 | + }; |
| 59 | + cargoHash = "sha256-AEigcEc5wiBd3zLqWN/2HSbkfOVFneAqNvg9HsouZf4="; |
| 60 | + cargoBuildFlags = [ "-p" "rustc_codegen_spirv" "--features=use-compiled-tools" "--no-default-features" ]; |
| 61 | + doCheck = false; |
| 62 | + }); |
| 63 | + rustGpuCargo = pkgs.writeShellScriptBin "cargo" '' |
| 64 | + #!${pkgs.lib.getExe pkgs.bash} |
| 65 | +
|
| 66 | + filtered_args=() |
| 67 | + for arg in "$@"; do |
| 68 | + case "$arg" in |
| 69 | + +nightly|+nightly-*) ;; |
| 70 | + *) filtered_args+=("$arg") ;; |
| 71 | + esac |
| 72 | + done |
| 73 | +
|
| 74 | + exec ${rustGPUToolchainPkg}/bin/cargo ${"\${filtered_args[@]}"} |
| 75 | + ''; |
| 76 | + rustGpuPathOverride = "${rustGpuCargo}/bin:${rustGPUToolchainPkg}/bin"; |
| 77 | + |
42 | 78 | libcef = pkgs.libcef.overrideAttrs (finalAttrs: previousAttrs: {
|
43 | 79 | version = "139.0.17";
|
44 | 80 | gitRevision = "6c347eb";
|
|
51 | 87 | strip $out/lib/*
|
52 | 88 | '';
|
53 | 89 | });
|
54 |
| - |
55 | 90 | libcefPath = pkgs.runCommand "libcef-path" {} ''
|
56 | 91 | mkdir -p $out
|
57 | 92 |
|
|
85 | 120 |
|
86 | 121 | # Development tools that don't need to be in LD_LIBRARY_PATH
|
87 | 122 | buildTools = [
|
88 |
| - rustc-wasm |
| 123 | + rust |
89 | 124 | pkgs.nodejs
|
90 | 125 | pkgs.nodePackages.npm
|
91 | 126 | pkgs.binaryen
|
|
119 | 154 | CEF_PATH = libcefPath;
|
120 | 155 | XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS";
|
121 | 156 |
|
| 157 | + RUST_GPU_PATH_OVERRIDE = rustGpuPathOverride; |
| 158 | + RUSTC_CODEGEN_SPIRV_PATH = "${rustc_codegen_spirv}/lib/librustc_codegen_spirv.so"; |
| 159 | + |
122 | 160 | shellHook = ''
|
123 | 161 | alias cargo='mold --run cargo'
|
124 | 162 | '';
|
|
0 commit comments