56 lines
1.2 KiB
Nix
56 lines
1.2 KiB
Nix
{
|
|
description = "Lake (Lean Make) is a new build system and package manager for Lean 4.";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-21.05";
|
|
lean = {
|
|
url = "github:leanprover/lean4";
|
|
};
|
|
flake-utils = {
|
|
url = "github:numtide/flake-utils";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, flake-utils
|
|
, nixpkgs
|
|
, lean
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (system:
|
|
let
|
|
pkgs = import nixpkgs { inherit system; };
|
|
packageName = "Lake";
|
|
src = ./.;
|
|
leanPkgs = lean.packages.${system};
|
|
project = leanPkgs.buildLeanPackage {
|
|
name = packageName;
|
|
inherit src;
|
|
};
|
|
cli = leanPkgs.buildLeanPackage {
|
|
name = "Lake.Main";
|
|
executableName = "lake";
|
|
deps = [ project ];
|
|
linkFlags = pkgs.lib.optional pkgs.stdenv.isLinux "-rdynamic";
|
|
inherit src;
|
|
};
|
|
in
|
|
{
|
|
packages = project // {
|
|
inherit (leanPkgs) lean;
|
|
|
|
cli = cli.executable;
|
|
};
|
|
|
|
defaultPackage = self.packages.${system}.cli;
|
|
|
|
apps.lake = flake-utils.lib.mkApp {
|
|
drv = cli.executable;
|
|
};
|
|
|
|
defaultApp = self.apps.${system}.lake;
|
|
|
|
inherit (project) devShell;
|
|
});
|
|
}
|