{ description = "Pijul implementation in lean"; inputs = { lean = { url = github:yatima-inc/lean4/acs/add-nix-ability-for-native-libs; }; nixpkgs.url = github:nixos/nixpkgs/nixos-21.05; flake-utils = { url = github:numtide/flake-utils; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, lean, flake-utils, nixpkgs }: let supportedSystems = [ # "aarch64-linux" # "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux" ]; in flake-utils.lib.eachSystem supportedSystems (system: let leanPkgs = lean.packages.${system}; pkgs = nixpkgs.legacyPackages.${system}; name = "Pijul"; project = leanPkgs.buildLeanPackage { inherit name; src = ./src; }; joinDepsDerivationns = getSubDrv: pkgs.lib.concatStringsSep ":" (map (d: "${getSubDrv d}") ([ project ] ++ (builtins.attrValues project.allExternalDeps))); in { inherit project; packages = { inherit (project) modRoot sharedLib staticLib; }; # checks.tests = tests; defaultPackage = project.executable; devShell = pkgs.mkShell { buildInputs = [ leanPkgs.lean ]; LEAN_PATH = joinDepsDerivationns (d: d.modRoot); LEAN_SRC_PATH = joinDepsDerivationns (d: d.src); }; }); }