{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: { overlays.default = final: prev: { rizin-unwrapped = prev.rizin.overrideAttrs (o: { mesonFlags = o.mesonFlags ++ [ "-Dportable=true" ]; }); rizin = self.packages.${prev.system}.rizin; rizinPlugins = { rz-ghidra = self.packages.${prev.system}.rz-ghidra; jsdec = self.packages.${prev.system}.jsdec; }; }; } // flake-utils.lib.eachSystem [ "aarch64-linux" "i686-linux" "x86_64-linux" ] (system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.default ]; }; in rec { packages = flake-utils.lib.flattenTree { rizin-unwrapped = pkgs.rizin-unwrapped; rizin = pkgs.callPackage ./rizin-with-plugin-support.nix { }; rz-ghidra = pkgs.callPackage ./rz-ghidra.nix { }; jsdec = pkgs.callPackage ./jsdec.nix { }; }; defaultPackage = packages.rizin; } ); }