Skip to content

Commit 67ea1e4

Browse files
authored
Merge pull request #18 from Halbaroth/update-nix-flake
Add a new output for OCaml 4
2 parents e5eb47c + 5674ffc commit 67ea1e4

4 files changed

Lines changed: 69 additions & 47 deletions

File tree

.envrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
use flake

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*~
22
_opam/
33
_build/
4+
.direnv/

flake.lock

Lines changed: 23 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,50 +3,52 @@
33

44
inputs = {
55
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
6-
systems.url = "github:nix-systems/default";
6+
flake-utils.url = "github:numtide/flake-utils";
77
};
88

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};
2913

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; };
5016
});
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+
});
5254
}

0 commit comments

Comments
 (0)