|
3 | 3 |
|
4 | 4 | inputs = { |
5 | 5 | nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; |
6 | | - systems.url = "github:nix-systems/default"; |
| 6 | + flake-utils.url = "github:numtide/flake-utils"; |
7 | 7 | }; |
8 | 8 |
|
9 | | - outputs = { self, nixpkgs, systems }: |
10 | | - let |
11 | | - eachSystem = nixpkgs.lib.genAttrs (import systems); |
12 | | - in |
13 | | - rec { |
14 | | - packages = eachSystem (system: |
15 | | - let |
16 | | - legacyPackages = nixpkgs.legacyPackages.${system}; |
17 | | - ocamlPackages = legacyPackages.ocamlPackages; |
18 | | - in rec |
19 | | - { |
20 | | - default = self.packages.${system}.ancient; |
21 | | - |
22 | | - ancient = ocamlPackages.buildDunePackage { |
23 | | - pname = "ancient"; |
24 | | - version = "dev"; |
25 | | - duneVersion = "3"; |
26 | | - src = ./.; |
27 | | - }; |
28 | | - }); |
| 9 | + outputs = { self, nixpkgs, flake-utils, ... }@inputs: |
| 10 | + flake-utils.lib.eachDefaultSystem (system: |
| 11 | + let |
| 12 | + pkgs = nixpkgs.legacyPackages.${system}; |
29 | 13 |
|
30 | | - devShells = eachSystem (system: |
31 | | - let |
32 | | - legacyPackages = nixpkgs.legacyPackages.${system}; |
33 | | - ocamlPackages = legacyPackages.ocamlPackages; |
34 | | - pkgs = packages.${system}; |
35 | | - in |
36 | | - { |
37 | | - default = legacyPackages.mkShell { |
38 | | - packages = [ |
39 | | - legacyPackages.nixpkgs-fmt |
40 | | - ocamlPackages.utop |
41 | | - ocamlPackages.odoc |
42 | | - ocamlPackages.ocaml-lsp |
43 | | - ocamlPackages.patdiff |
44 | | - ]; |
45 | | - |
46 | | - inputsFrom = [ |
47 | | - pkgs.ancient |
48 | | - ]; |
49 | | - }; |
| 14 | + ocamlPackages4 = pkgs.ocaml-ng.ocamlPackages_4_14.overrideScope (self: super: { |
| 15 | + ocaml = super.ocaml.override { noNakedPointers = true; }; |
50 | 16 | }); |
51 | | - }; |
| 17 | + |
| 18 | + ocamlPackages5 = pkgs.ocaml-ng.ocamlPackages_5_1; |
| 19 | + |
| 20 | + buildAncient = ocamlPackages: ocamlPackages.buildDunePackage { |
| 21 | + pname = "ancient"; |
| 22 | + version = "dev"; |
| 23 | + |
| 24 | + duneVersion = "3"; |
| 25 | + src = ./.; |
| 26 | + |
| 27 | + nativeBuildInputs = [ pkgs.git ]; |
| 28 | + }; |
| 29 | + |
| 30 | + devShellFor = ocamlPackages: ancient: pkgs.mkShell { |
| 31 | + packages = with ocamlPackages; [ |
| 32 | + utop |
| 33 | + odoc |
| 34 | + ocaml-lsp |
| 35 | + patdiff |
| 36 | + ]; |
| 37 | + |
| 38 | + inputsFrom = [ ancient ]; |
| 39 | + }; |
| 40 | + in |
| 41 | + { |
| 42 | + packages = { |
| 43 | + default = buildAncient ocamlPackages5; |
| 44 | + ocaml4 = buildAncient ocamlPackages4; |
| 45 | + }; |
| 46 | + |
| 47 | + formatter = pkgs.nixpkgs-fmt; |
| 48 | + |
| 49 | + devShells = { |
| 50 | + default = devShellFor ocamlPackages5 self.packages.${system}.default; |
| 51 | + ocaml4 = devShellFor ocamlPackages4 self.packages.${system}.ocaml4; |
| 52 | + }; |
| 53 | + }); |
52 | 54 | } |
0 commit comments