{ description = "Hare for mac"; inputs = { harec-src = { url = "github:badboy/harelang-harec"; flake = false; }; hare-src = { url = "github:badboy/harelang"; flake = false; }; linux-harec-src = { url = "git+https://git.sr.ht/~sircmpwn/harec"; flake = false; }; linux-hare-src = { url = "git+https://git.sr.ht/~sircmpwn/hare"; flake = false; }; }; outputs = { nixpkgs, harec-src, hare-src, linux-harec-src, linux-hare-src, ... }: let darwinSystems = [ "x86_64-darwin" "aarch64-darwin" ]; linuxSystems = [ "x86_64-linux" "aarch64-linux" ]; in { packages = nixpkgs.lib.genAttrs darwinSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; hare-as = pkgs.callPackage ./pkgs/darwin/hare-as.nix { }; hare-cc = pkgs.callPackage ./pkgs/darwin/hare-cc.nix { }; hare-ld = pkgs.callPackage ./pkgs/darwin/hare-ld.nix { }; harec = pkgs.callPackage ./pkgs/darwin/harec.nix { inherit harec-src hare-as hare-cc hare-ld; }; hare = pkgs.callPackage ./pkgs/darwin/hare.nix { inherit hare-src harec hare-as hare-cc hare-ld; }; in { inherit hare harec; }) // nixpkgs.lib.genAttrs linuxSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; harec = pkgs.callPackage ./pkgs/linux/harec.nix { harec-src = linux-harec-src; }; hare = pkgs.callPackage ./pkgs/linux/hare.nix { inherit harec; hare-src = linux-hare-src; }; in { inherit hare harec; }); }; }