nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 buildDunePackage,
6 ocaml,
7 findlib,
8 cppo,
9}:
10
11let
12 param =
13 let
14 v6_6 = {
15 version = "6.6";
16 sha256 = "sha256-QhuaQ9346a3neoRM4GrOVzjR8fg9ysMZR1VzNgyIQtc=";
17 nativeBuildInputs = [ cppo ];
18 buildInputs = [ cppo ];
19 };
20 in
21 {
22 "4.02" = {
23 version = "5.0+4.02.0";
24 sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8";
25 };
26 "4.03" = {
27 version = "5.0+4.03.0";
28 sha256 = "061v1fl5z7z3ywi4ppryrlcywnvnqbsw83ppq72qmkc7ma4603jg";
29 };
30 "4.04" = {
31 version = "unstable-20161114";
32 rev = "49c08e2e4ea8fef88692cd1dcc1b38a9133f17ac";
33 sha256 = "0ywzfkf5brj33nwh49k9if8x8v433ral25f3nbklfc9vqr06zrfl";
34 };
35 "4.05" = {
36 version = "5.0+4.05.0";
37 sha256 = "1jvvhk6wnkvm7b9zph309ihsc0hyxfpahmxxrq19vx8c674jsdm4";
38 };
39 "4.06" = {
40 version = "5.1+4.06.0";
41 sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
42 };
43 "4.07" = {
44 version = "5.1+4.06.0";
45 sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw";
46 };
47 }
48 .${ocaml.meta.branch} or v6_6;
49in
50
51let
52 src = fetchFromGitHub {
53 owner = "alainfrisch";
54 repo = pname;
55 rev = param.rev or param.version;
56 inherit (param) sha256;
57 };
58 pname = "ppx_tools";
59 meta = {
60 description = "Tools for authors of ppx rewriters";
61 homepage = "https://www.lexifi.com/ppx_tools";
62 license = lib.licenses.mit;
63 maintainers = with lib.maintainers; [ vbgl ];
64 broken = lib.versionAtLeast ocaml.version "5.2";
65 };
66in
67if lib.versionAtLeast param.version "6.0" then
68 buildDunePackage {
69 inherit pname src meta;
70 inherit (param) version buildInputs nativeBuildInputs;
71 }
72else
73 stdenv.mkDerivation {
74 name = "ocaml${ocaml.version}-${pname}-${param.version}";
75
76 inherit src;
77
78 nativeBuildInputs = [
79 ocaml
80 findlib
81 ];
82
83 strictDeps = true;
84
85 createFindlibDestdir = true;
86
87 dontStrip = true;
88
89 meta = meta // {
90 inherit (ocaml.meta) platforms;
91 };
92 }