-
-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathflake.nix
More file actions
89 lines (85 loc) · 2.58 KB
/
flake.nix
File metadata and controls
89 lines (85 loc) · 2.58 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
{
inputs = {
nixpkgs.url = "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz";
flake-parts.url = "github:hercules-ci/flake-parts";
treefmt-nix = {
url = "github:numtide/treefmt-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
nixpkgs,
flake-parts,
treefmt-nix,
...
}@inputs:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
inputs.flake-parts.flakeModules.easyOverlay
];
perSystem =
{
config,
pkgs,
lib,
...
}:
let
inherit (pkgs)
nixVersions
llvmPackages_21
callPackage
stdenv
;
nixComponents = nixVersions.nixComponents_2_33;
llvmPackages = llvmPackages_21;
nixf = callPackage ./libnixf { inherit (nixComponents) nix-expr; };
nixt = callPackage ./libnixt { inherit nixComponents; };
nixd = callPackage ./nixd {
inherit nixComponents nixf nixt;
inherit llvmPackages;
};
nixdMono = callPackage ./. { inherit nixComponents llvmPackages; };
nixdLLVM = nixdMono.override { stdenv = if stdenv.isDarwin then stdenv else llvmPackages.stdenv; };
regressionDeps = with pkgs; [
clang-tools
lit
nixfmt
];
shellOverride = old: {
nativeBuildInputs = old.nativeBuildInputs ++ regressionDeps;
shellHook = ''
export PATH="${pkgs.clang-tools}/bin:$PATH"
export NIX_SRC=${nixComponents.src}
export NIX_PATH=nixpkgs=${nixpkgs}
'';
hardeningDisable = [ "fortify" ];
};
testShell = callPackage ./nixd/docs/editors/test-shell.nix;
examplesSrc = ./nixd/docs/examples/NixOS_Home-Manager;
treefmtEval = treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
in
{
packages.default = nixd;
overlayAttrs = {
inherit (config.packages) nixd;
};
packages = {
inherit nixd nixf nixt;
};
devShells = {
llvm = nixdLLVM.overrideAttrs shellOverride;
default = nixdMono.overrideAttrs shellOverride;
}
// lib.genAttrs [ "nvim" "vscodium" ] (
editor:
testShell {
inherit nixd examplesSrc editor;
}
);
formatter = treefmtEval.config.build.wrapper;
};
systems = nixpkgs.lib.systems.flakeExposed;
};
}