nixpkgs/pkgs/development/ocaml-modules/optcomp/default.nix

48 lines
1.4 KiB
Nix
Raw Normal View History

{ stdenv, lib, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, camlp4 }:
2014-05-17 10:51:18 +00:00
stdenv.mkDerivation {
2015-06-04 17:22:36 +00:00
name = "ocaml-optcomp-1.6";
2014-05-17 10:51:18 +00:00
src = fetchurl {
url = "https://github.com/diml/optcomp/archive/1.6.tar.gz";
sha256 = "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh";
};
patches =
let inherit (lib) optional versionAtLeast; in
optional (versionAtLeast ocaml.version "4.02") (fetchpatch {
url = "https://github.com/diml/optcomp/commit/b7f809360c9794b383a4bc0492f6df381276b429.patch";
sha256 = "1n095lk94jq1rwi0l24g2wbgms7249wdd31n0ji895dr6755s93y";
})
;
2014-05-17 10:51:18 +00:00
createFindlibDestdir = true;
buildInputs = [ ocaml findlib ocamlbuild camlp4 ];
2014-05-17 10:51:18 +00:00
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}
'';
2014-05-17 10:51:18 +00:00
meta = {
homepage = "https://github.com/diml/optcomp";
2014-05-17 10:51:18 +00:00
description = "Optional compilation for OCaml with cpp-like directives";
license = lib.licenses.bsd3;
platforms = ocaml.meta.platforms or [];
2014-05-17 10:51:18 +00:00
maintainers = [
lib.maintainers.gal_bolle
2014-05-17 10:51:18 +00:00
];
};
}