spond/flake.nix
2026-03-05 01:57:37 +01:00

64 lines
1.5 KiB
Nix

{
outputs = { nixpkgs, ... }: let
spond = { rustPlatform, rustfmt, clippy, pkg-config, openssl, ... }: rustPlatform.buildRustPackage {
pname = "spond";
version = "0.0.0";
src = ./.;
cargoLock.lockFile = ./Cargo.lock;
nativeBuildInputs = [
pkg-config
];
propagatedBuildInputs = [
openssl.dev
];
};
allpkgs = system: pkgs: pkgs.extend (_: _: nixpkgs.lib.attrsets.filterAttrs (name: _: name != "default") (packages system pkgs));
packages = system: pkgs': let
pkgs = allpkgs system pkgs';
in {
default = pkgs.spond;
spond = pkgs.callPackage spond {};
};
devShells = system: pkgs': let
pkgs = allpkgs system pkgs';
in builtins.mapAttrs (devShell pkgs) (packages system pkgs');
devShell = pkgs: name: pkg: pkgs.mkShell {
buildInputs = with pkgs; [
cargo
cargo-bloat
cargo-machete
cargo-workspaces
cargo-unused-features
cargo-udeps
cargo-audit
cargo-diet
cargo-duplicates
cargo-expand
cargo-flamegraph
clippy
lldb
gdb
(python3.withPackages (py: [ py.pyyaml ]))
rustc
rustfmt
openssl.dev
] ++ pkg.buildInputs;
nativeBuildInputs = pkg.nativeBuildInputs;
shellHook = ''
printf 'Dev shell for %s ready!\n' '${pkg.name}'
'';
};
in {
packages = builtins.mapAttrs packages nixpkgs.legacyPackages;
devShells = builtins.mapAttrs devShells nixpkgs.legacyPackages;
};
}