-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
74 lines (67 loc) · 1.75 KB
/
flake.nix
File metadata and controls
74 lines (67 loc) · 1.75 KB
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
{
description = "🌊🐦";
inputs.nixpkgs.url = "github:pseudocc/nixpkgs/zig-0.15.1";
outputs = { self, nixpkgs }: import ./nix/each-system.nix nixpkgs (
system: pkgs: let
inherit (pkgs) lib;
name = "auk";
version = import ./nix/version.nix ./build.zig.zon;
mkDrv = optimize: pkgs.stdenv.mkDerivation {
inherit version;
pname = name;
src = with lib.fileset; toSource {
root = ./.;
fileset = unions [
./core
./terminal
./manifest.zig
./auk.zig
./build.zig
./build.zig.zon
./LICENSE
];
};
buildInputs = [
(pkgs.zig.hook.overrideAttrs {
zig_default_flags = [
"-Dcpu=baseline"
"--release=${optimize}"
"--color off"
];
})
];
outputs = [ "out" "doc" ];
postInstall = ''
install -D -m644 LICENSE $doc/share/doc/LICENSE
'';
meta = {
description = "AUK event monitor";
license = lib.licenses.free;
mainProgram = name;
};
};
in {
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
zig
zls
];
};
packages = {
"${name}-debug" = mkDrv "off";
"${name}-release-fast" = mkDrv "fast";
"${name}-release-small" = mkDrv "small";
"${name}-release-safe" = mkDrv "safe";
${name} = mkDrv "safe";
default = mkDrv "safe";
};
apps = let
mkApp = name: drv: {
type = "app";
program = lib.getExe drv;
};
in
lib.mapAttrs mkApp self.packages.${system};
}
);
}