64 lines
1.5 KiB
Nix
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;
|
|
};
|
|
}
|