-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathflake.nix
45 lines (42 loc) · 1.33 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
description = "Functions for building Dart packages with Nix";
inputs = {
flake-utils.url = "github:numtide/flake-utils";
pub2nix = {
url = "github:paulyoung/pub2nix";
flake = false;
};
};
outputs = { self, flake-utils, nixpkgs, pub2nix }:
let
builder = pkgs:
let
yamlLib = import "${pub2nix}/yaml.nix" { inherit pkgs; };
in
pkgs.callPackage ./build.nix { inherit yamlLib; };
in
{
overlay = final: prev: {
buildDartPackage = builder final;
dart = final.callPackage ./pkgs/dart { channel = "stable"; };
dart-beta = final.callPackage ./pkgs/dart { channel = "beta"; };
dart-dev = final.callPackage ./pkgs/dart { channel = "dev"; };
pub2nix-lock = import "${pub2nix}/lock.nix" { pkgs = final; };
};
}
//
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
builders.buildDartPackage = builder pkgs;
packages = rec {
dart = pkgs.callPackage ./pkgs/dart { channel = "stable"; };
dart-beta = pkgs.callPackage ./pkgs/dart { channel = "beta"; };
dart-dev = pkgs.callPackage ./pkgs/dart { channel = "dev"; };
pub2nix-lock = import "${pub2nix}/lock.nix" { inherit pkgs; };
};
}
);
}