ocamlPackages.optcomp: fix build with OCaml 4.06

This commit is contained in:
Vincent Laporte 2018-04-04 15:09:04 +00:00
parent b76f0ed3ed
commit 50b0afa269
No known key found for this signature in database
GPG Key ID: EBD582ADDDB1F81F
2 changed files with 35 additions and 1 deletions

View File

@ -0,0 +1,12 @@
# OASIS_START
# DO NOT EDIT (digest: ec844fa3189acb2a866b89a69d111ba4)
version = "1.6"
description = "Optional compilation with cpp-like directives"
requires = "camlp4"
archive(syntax, preprocessor) = "optcomp.cma"
archive(syntax, toploop) = "optcomp.cma"
archive(syntax, preprocessor, native) = "optcomp.cmxa"
archive(syntax, preprocessor, native, plugin) = "optcomp.cmxs"
exists_if = "optcomp.cma"
# OASIS_STOP

View File

@ -1,4 +1,4 @@
{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, camlp4 }: { stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, camlp4 }:
stdenv.mkDerivation { stdenv.mkDerivation {
name = "ocaml-optcomp-1.6"; name = "ocaml-optcomp-1.6";
@ -6,11 +6,33 @@ stdenv.mkDerivation {
url = https://github.com/diml/optcomp/archive/1.6.tar.gz; url = https://github.com/diml/optcomp/archive/1.6.tar.gz;
sha256 = "0hhhb2gisah1h22zlg5iszbgqxdd7x85cwd57bd4mfkx9l7dh8jh"; 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; createFindlibDestdir = true;
buildInputs = [ ocaml findlib ocamlbuild camlp4 ]; 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 = { meta = {
homepage = https://github.com/diml/optcomp; homepage = https://github.com/diml/optcomp;