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
|
{
lib,
callPackage,
buildDunePackage,
fetchurl,
fix,
menhir,
menhirLib,
menhirSdk,
merlin-extend,
ppxlib,
cppo,
cmdliner,
dune-build-info,
}:
let
param =
if lib.versionAtLeast ppxlib.version "0.36" then
{
version = "3.18.0";
hash = "sha256-T7pqFvVFUbeOHZDrLBZ/bulkyvU4O8LS+TzszH5k3EQ=";
}
else
{
version = "3.15.0";
hash = "sha256-7D0gJfQ5Hw0riNIFPmJ6haoa3dnFEyDp5yxpDgX7ZqY=";
};
in
buildDunePackage rec {
pname = "reason";
inherit (param) version;
minimalOCamlVersion = "4.11";
src = fetchurl {
url = "https://github.com/reasonml/reason/releases/download/${version}/reason-${version}.tbz";
inherit (param) hash;
};
nativeBuildInputs = [
menhir
cppo
];
buildInputs = [
dune-build-info
fix
menhirSdk
merlin-extend
]
++ lib.optional (lib.versionAtLeast version "3.17") cmdliner;
propagatedBuildInputs = [
ppxlib
menhirLib
];
passthru.tests = {
hello = callPackage ./tests/hello { };
};
meta = {
homepage = "https://reasonml.github.io/";
downloadPage = "https://github.com/reasonml/reason";
description = "User-friendly programming language built on OCaml";
license = lib.licenses.mit;
maintainers = [ ];
};
}
|