depot/third_party/nixpkgs/pkgs/development/ocaml-modules/ulex/default.nix

65 lines
1.2 KiB
Nix

{
stdenv,
lib,
fetchFromGitHub,
ocaml,
findlib,
ocamlbuild,
camlp4,
}:
let
pname = "ulex";
param =
if lib.versionAtLeast ocaml.version "4.02" then
{
version = "1.2";
sha256 = "08yf2x9a52l2y4savjqfjd2xy4pjd1rpla2ylrr9qrz1drpfw4ic";
}
else
{
version = "1.1";
sha256 = "0cmscxcmcxhlshh4jd0lzw5ffzns12x3bj7h27smbc8waxkwffhl";
};
in
lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
"ulex is not available for OCaml ${ocaml.version}"
stdenv.mkDerivation
rec {
name = "ocaml${ocaml.version}-${pname}-${version}";
inherit (param) version;
src = fetchFromGitHub {
owner = "whitequark";
repo = pname;
rev = "v${version}";
inherit (param) sha256;
};
createFindlibDestdir = true;
nativeBuildInputs = [
ocaml
findlib
ocamlbuild
camlp4
];
propagatedBuildInputs = [ camlp4 ];
strictDeps = true;
buildFlags = [
"all"
"all.opt"
];
meta = {
inherit (src.meta) homepage;
description = "Lexer generator for Unicode and OCaml";
license = lib.licenses.mit;
inherit (ocaml.meta) platforms;
maintainers = [ lib.maintainers.roconnor ];
};
}