48 lines
1.4 KiB
Nix
48 lines
1.4 KiB
Nix
{ stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, camlp4 }:
|
|
|
|
stdenv.mkDerivation {
|
|
name = "ocaml-optcomp-1.6";
|
|
src = fetchurl {
|
|
url = "https://github.com/diml/optcomp/archive/1.6.tar.gz";
|
|
sha256 = "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh";
|
|
};
|
|
|
|
patches =
|
|
let inherit (stdenv.lib) optional versionAtLeast; in
|
|
optional (versionAtLeast ocaml.version "4.02") (fetchpatch {
|
|
url = "https://github.com/diml/optcomp/commit/b7f809360c9794b383a4bc0492f6df381276b429.patch";
|
|
sha256 = "1n095lk94jq1rwi0l24g2wbgms7249wdd31n0ji895dr6755s93y";
|
|
})
|
|
;
|
|
|
|
createFindlibDestdir = true;
|
|
|
|
buildInputs = [ ocaml findlib ocamlbuild camlp4 ];
|
|
|
|
configurePhase = ''
|
|
cp ${./META} META
|
|
'';
|
|
|
|
buildPhase = ''
|
|
ocamlbuild src/optcomp.cmxs src/optcomp.cma src/optcomp_o.native src/optcomp_r.native
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp _build/src/optcomp_o.native $out/bin/optcomp-o
|
|
cp _build/src/optcomp_r.native $out/bin/optcomp-r
|
|
ocamlfind install optcomp META _build/src/optcomp.{a,cma,cmxa,cmxs} _build/src/pa_optcomp.{cmi,cmx,mli}
|
|
'';
|
|
|
|
meta = {
|
|
homepage = "https://github.com/diml/optcomp";
|
|
description = "Optional compilation for OCaml with cpp-like directives";
|
|
license = stdenv.lib.licenses.bsd3;
|
|
platforms = ocaml.meta.platforms or [];
|
|
maintainers = [
|
|
stdenv.lib.maintainers.gal_bolle
|
|
];
|
|
};
|
|
|
|
}
|