60 lines
1 KiB
Nix
60 lines
1 KiB
Nix
{
|
|
pkgs,
|
|
fenix,
|
|
selfPkgs,
|
|
...
|
|
}:
|
|
let
|
|
defaultAdditionalPkgs = with pkgs; [
|
|
rustfmt
|
|
clippy
|
|
cargo-expand
|
|
cargo-tarpaulin
|
|
gdb
|
|
];
|
|
in
|
|
(builtins.mapAttrs (
|
|
packageName: package:
|
|
pkgs.mkShell {
|
|
inputsFrom = [ package ];
|
|
packages = defaultAdditionalPkgs;
|
|
RUST_BACKTRACE = 1;
|
|
RUST_LOG = "all";
|
|
}
|
|
) selfPkgs)
|
|
// {
|
|
default = pkgs.mkShell {
|
|
inputsFrom = [
|
|
selfPkgs.servicepoint-binding-c
|
|
selfPkgs.announce
|
|
];
|
|
packages =
|
|
defaultAdditionalPkgs
|
|
++ (with pkgs; [
|
|
(pkgs.symlinkJoin {
|
|
name = "rust-toolchain";
|
|
paths = with pkgs; [
|
|
rustc
|
|
cargo
|
|
rustPlatform.rustcSrc
|
|
rustPlatform.rustLibSrc
|
|
rustfmt
|
|
clippy
|
|
cargo-expand
|
|
cargo-tarpaulin
|
|
];
|
|
})
|
|
gcc
|
|
gnumake
|
|
xe
|
|
libgcc
|
|
libunwind
|
|
pkgsStatic.gcc
|
|
pkgsStatic.libgcc
|
|
pkgsStatic.musl
|
|
]);
|
|
|
|
RUST_SRC_PATH = "${pkgs.rustPlatform.rustLibSrc}";
|
|
};
|
|
}
|