infrastructure/common/hm-modules/rust.nix
2024-03-21 17:20:29 +01:00

43 lines
809 B
Nix

{
pkgs,
lib,
config,
...
}:
with lib;
let
cfg = config.programs.v.rust;
in
{
options.programs.v.rust.enable = mkEnableOption "rust";
config = mkIf cfg.enable {
home = {
packages = with pkgs; [
rustup
cargo-binutils
cargo-nextest
cargo-msrv
cargo-dist
cargo-cross
];
file.".cargo/config.toml".text = ''
[registries.crates-io]
protocol = "sparse"
[build]
rustc-wrapper = "${pkgs.sccache}/bin/sccache"
[target.'cfg(not(target_arch = "mips"))']
linker = "${pkgs.clang}/bin/clang"
rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"]
[profile.rust-analyzer]
inherits = "dev"
'';
sessionPath = [ "$HOME/.cargo/bin" ];
};
};
}