evcc: 0.131.4 -> 0.131.5
[NixPkgs.git] / pkgs / development / ocaml-modules / dypgen / default.nix
blobd47b78307769524bf9e18c335db67f7b0c982c29
1 { stdenv, lib, fetchFromGitHub, fetchurl, ocaml, findlib }:
3 let params =
4   if lib.versionAtLeast ocaml.version "4.07" then rec {
5     version = "0.2";
6     src = fetchFromGitHub {
7       owner = "grain-lang";
8       repo = "dypgen";
9       rev = version;
10       hash = "sha256-fKuO/e5YbA2B7XcghWl9pXxwvKw9YlhnmZDZcuKe3cs=";
11     };
12   } else if lib.versionOlder ocaml.version "4.06" then {
13     version = "20120619-1";
14     src = fetchurl {
15       url = "http://dypgen.free.fr/dypgen-20120619-1.tar.bz2";
16       sha256 = "ecb53d6e469e9ec4d57ee6323ff498d45b78883ae13618492488e7c5151fdd97";
17     };
18   } else throw "dypgen is not available for OCaml ${ocaml.version}"
19 ; in
21 stdenv.mkDerivation rec {
22   pname = "ocaml${ocaml.version}-dypgen";
23   inherit (params) src version;
25   nativeBuildInputs = [ ocaml findlib ];
27   strictDeps = true;
29   createFindlibDestdir = true;
31   buildPhase = ''
32     make
33   '';
35   makeFlags = [ "BINDIR=$(out)/bin" "MANDIR=$(out)/usr/share/man/man1" "DYPGENLIBDIR=$(out)/lib/ocaml/${ocaml.version}/site-lib" ];
37   meta = {
38     homepage = "http://dypgen.free.fr";
39     description = "Dypgen GLR self extensible parser generator";
40     license = lib.licenses.cecill-b;
41     inherit (ocaml.meta) platforms;
42   };