at 18.03-beta 35 lines 1.0 kB view raw
1{ stdenv, fetchFromGitHub, ocaml, findlib, jbuilder, alcotest, result }: 2 3if !stdenv.lib.versionAtLeast ocaml.version "4.03" 4then throw "angstrom is not available for OCaml ${ocaml.version}" 5else 6 7stdenv.mkDerivation rec { 8 version = "0.8.1"; 9 name = "ocaml${ocaml.version}-angstrom-${version}"; 10 11 src = fetchFromGitHub { 12 owner = "inhabitedtype"; 13 repo = "angstrom"; 14 rev = "${version}"; 15 sha256 = "067r3vy5lac1bfx947gy722amna3dbcak54nlh24vx87pmcq31qc"; 16 }; 17 18 buildInputs = [ ocaml findlib jbuilder alcotest ]; 19 propagatedBuildInputs = [ result ]; 20 21 buildPhase = "jbuilder build -p angstrom"; 22 23 doCheck = true; 24 checkPhase = "jbuilder runtest -p angstrom"; 25 26 inherit (jbuilder) installPhase; 27 28 meta = { 29 homepage = https://github.com/inhabitedtype/angstrom; 30 description = "OCaml parser combinators built for speed and memory efficiency"; 31 license = stdenv.lib.licenses.bsd3; 32 maintainers = with stdenv.lib.maintainers; [ sternenseemann ]; 33 inherit (ocaml.meta) platforms; 34 }; 35}