52 lines
1.1 KiB
Nix
52 lines
1.1 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;
|
|
};
|
|
in
|
|
{
|
|
packages.${packageName} = project.lean-package;
|
|
packages.lakeProject = project;
|
|
|
|
defaultPackage = self.packages.${system}.${packageName};
|
|
|
|
apps.lake = flake-utils.lib.mkApp {
|
|
name = "lake";
|
|
drv = project.executable;
|
|
};
|
|
|
|
defaultApp = self.apps.${system}.lake;
|
|
|
|
# `nix develop`
|
|
devShell = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
leanPkgs.lean
|
|
];
|
|
};
|
|
});
|
|
}
|