{ inputs = { fenix.url = "github:nix-community/fenix"; }; outputs = { self, nixpkgs, flake-utils, fenix }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = [ fenix.overlays.default ]; }; toolchain = pkgs.fenix.stable; flakePkgs = { leanshot = pkgs.callPackage ./. { inherit toolchain; }; }; in rec { packages = flake-utils.lib.flattenTree flakePkgs; defaultPackage = packages.leanshot; devShell = pkgs.mkShell { inputsFrom = with packages; [ leanshot ]; packages = (with pkgs; [ cargo-watch cargo-deny cargo-edit ]) ++ (with toolchain; [ cargo rustc rustfmt ]); CARGO_UNSTABLE_SPARSE_REGISTRY = "true"; PKG_CONFIG_PATH = let standardPkgs = pkgs.lib.makeSearchPathOutput "dev" "lib/pkgconfig" (with pkgs; [ libGL xorg.libX11 ]); otherPkgs = pkgs.lib.makeSearchPath "pkgconfig" (with pkgs; [ "${xorg.xorgproto}/share" ]); in "${standardPkgs}:${otherPkgs}"; }; }); }