1{ stdenv, lib, fetchFromGitHub, ocaml, findlib, ocamlbuild, camlp4 }:
2
3let
4 pname = "ulex";
5 param =
6 if lib.versionAtLeast ocaml.version "4.02" then {
7 version = "1.2";
8 sha256 = "08yf2x9a52l2y4savjqfjd2xy4pjd1rpla2ylrr9qrz1drpfw4ic";
9 } else {
10 version = "1.1";
11 sha256 = "0cmscxcmcxhlshh4jd0lzw5ffzns12x3bj7h27smbc8waxkwffhl";
12 };
13in
14
15stdenv.mkDerivation rec {
16 name = "ocaml${ocaml.version}-${pname}-${version}";
17 inherit (param) version;
18
19 src = fetchFromGitHub {
20 owner = "whitequark";
21 repo = pname;
22 rev = "v${version}";
23 inherit (param) sha256;
24 };
25
26 createFindlibDestdir = true;
27
28 nativeBuildInputs = [ ocaml findlib ocamlbuild camlp4 ];
29 propagatedBuildInputs = [ camlp4 ];
30
31 strictDeps = true;
32
33 buildFlags = [ "all" "all.opt" ];
34
35 meta = {
36 inherit (src.meta) homepage;
37 description = "A lexer generator for Unicode and OCaml";
38 license = lib.licenses.mit;
39 inherit (ocaml.meta) platforms;
40 maintainers = [ lib.maintainers.roconnor ];
41 };
42}