52 lines
1.1 KiB
Nix
52 lines
1.1 KiB
Nix
{
|
|
lib,
|
|
fetchFromGitHub,
|
|
stdenv,
|
|
findlib,
|
|
ocaml,
|
|
ocamlbuild,
|
|
}:
|
|
|
|
lib.throwIf (lib.versionOlder ocaml.version "4.02")
|
|
"sosa is not available for OCaml ${ocaml.version}"
|
|
|
|
stdenv.mkDerivation
|
|
rec {
|
|
pname = "ocaml${ocaml.version}-sosa";
|
|
version = "0.3.0";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "hammerlab";
|
|
repo = "sosa";
|
|
rev = "sosa.${version}";
|
|
sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
|
|
};
|
|
|
|
postPatch = lib.optionalString (lib.versionAtLeast ocaml.version "4.07") ''
|
|
for p in functors list_of of_mutable
|
|
do
|
|
substituteInPlace src/lib/$p.ml --replace Pervasives. Stdlib.
|
|
done
|
|
'';
|
|
|
|
nativeBuildInputs = [
|
|
ocaml
|
|
ocamlbuild
|
|
findlib
|
|
];
|
|
|
|
strictDeps = true;
|
|
|
|
buildPhase = "make build";
|
|
|
|
createFindlibDestdir = true;
|
|
|
|
doCheck = true;
|
|
|
|
meta = with lib; {
|
|
homepage = "http://www.hammerlab.org/docs/sosa/master/index.html";
|
|
description = "Sane OCaml String API";
|
|
license = licenses.isc;
|
|
maintainers = [ maintainers.alexfmpe ];
|
|
};
|
|
}
|