{ description = "A calculator program/website"; outputs = { self, nixpkgs }: let systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system); nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; overlays = [ self.overlay ]; }); in { overlay = final: prev: { kalker = final.rustPlatform.buildRustPackage { pname = "kalker"; version = "unstable"; src = self; nativeBuildInputs = with final; [ gcc ]; outputs = [ "out" "lib" ]; postInstall = '' moveToOutput "lib" "$lib" ''; cargoLock = { lockFile = self + "/Cargo.lock"; }; buildInputs = with final; [ gmp mpfr libmpc ]; CARGO_FEATURE_USE_SYSTEM_LIBS = "1"; }; }; packages = forAllSystems (system: nixpkgsFor.${system}); defaultPackage = forAllSystems (system: self.packages.${system}.kalker); }; }