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 buildInputs = [ ocaml findlib ocamlbuild ];
29 propagatedBuildInputs = [ camlp4 ];
30
31 buildFlags = [ "all" "all.opt" ];
32
33 meta = {
34 inherit (src.meta) homepage;
35 description = "A lexer generator for Unicode and OCaml";
36 license = lib.licenses.mit;
37 platforms = ocaml.meta.platforms or [];
38 maintainers = [ lib.maintainers.roconnor ];
39 };
40}