37 lines
892 B
Nix
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}";
|
|
}
|