{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; git-hooks.url = "github:cachix/git-hooks.nix"; git-hooks.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { self, git-hooks, nixpkgs, }: let inherit (self) outputs; inherit (outputs) overlays; systems = ["aarch64-linux" "aarch64-darwin" "x86_64-darwin" "x86_64-linux"]; forSystems = nixpkgs.lib.genAttrs systems; pkgsFor = system: (import nixpkgs {inherit system;}).extend overlays.default; genPkgs = func: (forSystems (system: func (pkgsFor system))); in { checks = genPkgs ({system, ...}: { git-hooks = git-hooks.lib.${system}.run { src = ./.; hooks = { alejandra.enable = true; cargo-check.enable = true; clippy.enable = true; rustfmt.enable = true; }; }; }); packages = genPkgs (pkgs: { kodotag = pkgs.rustPlatform.buildRustPackage { pname = "kodotag"; version = "0.1.0"; nativeBuildInputs = with pkgs; [ pkg-config ]; buildInputs = with pkgs; [ clang cargo rustc rustfmt rustPackages.clippy xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr rust-analyzer mold udev alsa-lib vulkan-loader libxkbcommon wayland ]; src = ./.; hash = pkgs.lib.fakeHash; cargoHash = "sha256-W7VQlMktGsRPQL9VGVmxYV6C5u2eJ48S7eTpOM+3n8U="; }; default = outputs.packages.${pkgs.system}.kodotag; }); overlays = { default = final: prev: {}; }; formatter = genPkgs (p: p.alejandra); }; }