CS3502/shell.nix
2025-12-04 18:03:57 -05:00

37 lines
892 B
Nix

{ pkgs ? import <nixpkgs> {},
crane ? builtins.getFlake "github:ipetkov/crane",
fenix ? builtins.getFlake "github:nix-community/fenix",
}:
let
fenixPkgs = fenix.packages.${pkgs.system};
toolchain = fenixPkgs.complete.withComponents [
"rustc" "rust-std" "cargo" "rust-docs" "rustfmt" "clippy" "rust-src"
];
craneLib = (crane.mkLib pkgs).overrideToolchain toolchain;
# Rust dev tools (for P3)
rustPackages = with pkgs; [
pkg-config
fontconfig
wayland
wayland-protocols
wayland-scanner
vulkan-loader
libxkbcommon
xorg.libxcb
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
xorg.libXxf86vm
];
in craneLib.devShell {
packages = rustPackages ++ [
fenixPkgs.rust-analyzer
# C dev tools
pkgs.gcc
pkgs.llvmPackages_21.clang-tools
];
LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath rustPackages}";
}