Skip to content

Commit 1dec545

Browse files
committed
format & cache cargo dependencies in the dev shell
1 parent a6ecbed commit 1dec545

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

flake.nix

+13-8
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,18 @@
4242
] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [
4343
pkgs.darwin.apple_sdk.frameworks.Cocoa
4444
];
45-
stdenv = if pkgs.stdenv.isLinux then pkgs.stdenv
46-
else if pkgs.stdenv.isDarwin then pkgs.clang18Stdenv
47-
else throw "Unsupported platform";
45+
stdenv =
46+
if pkgs.stdenv.isLinux then pkgs.stdenv
47+
else if pkgs.stdenv.isDarwin then pkgs.clang18Stdenv
48+
else throw "Unsupported platform";
49+
cargoDeps = pkgs.rustPlatform.importCargoLock {
50+
lockFile = ./src/jit/Cargo.lock;
51+
};
4852
in
4953
{
5054
packages.default = stdenv.mkDerivation
5155
{
52-
cargoDeps = pkgs.rustPlatform.importCargoLock {
53-
lockFile = ./src/jit/Cargo.lock;
54-
};
56+
cargoDeps = cargoDeps;
5557
cargoRoot = "src/jit";
5658
pname = "dgb-n64";
5759
version = "0.0.1-${shortRev}";
@@ -88,11 +90,14 @@
8890
devShells.default = pkgs.mkShell.override { stdenv = stdenv; }
8991
{
9092
buildInputs = devShellTools ++ tools ++ libs;
91-
shellHook = if stdenv.isLinux then ''
93+
shellHook = ''
94+
# So the cargo dependencies get cached offline, just in case
95+
export cargoDeps=${cargoDeps}
96+
'' + (if stdenv.isLinux then ''
9297
export LD_LIBRARY_PATH="${pkgs.vulkan-loader}/lib";
9398
'' else if stdenv.isDarwin then ''
9499
export DYLD_FALLBACK_LIBRARY_PATH="${pkgs.darwin.moltenvk}/lib";
95-
'' else throw "Unsupported platform";
100+
'' else throw "Unsupported platform");
96101
};
97102
}
98103
);

0 commit comments

Comments
 (0)