ocamlPackages.zarith: use buildOcaml instead of mkDerivation
This has two main advantages:
- By setting hasSharedObjects = true, buildOcaml will automatically
include a setup-hook.sh that sets CAML_LD_LIBRARY_PATH in dependent
expressions. This is needed to pick up dllzarith.so properly which is
shipped as part of the library.
- We can kill the ugly assert in the expression and instead change it
to use minimumSupportedOcamlVersion.
(Note: this was reverted in b44d5136e8
, but the change is
exactly equivalent -- I wasn't sure what impact zarith might actually
have without checking OfBorg, which I wanted to do first.)
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This commit is contained in:
parent
b44d5136e8
commit
564653f91d
@ -1,8 +1,9 @@
|
||||
{ stdenv, fetchurl, ocaml, findlib, pkgconfig, gmp, perl }:
|
||||
{ stdenv, buildOcaml, fetchurl
|
||||
, ocaml, findlib, pkgconfig, perl
|
||||
, gmp
|
||||
}:
|
||||
|
||||
assert stdenv.lib.versionAtLeast ocaml.version "3.12.1";
|
||||
|
||||
let param =
|
||||
let source =
|
||||
if stdenv.lib.versionAtLeast ocaml.version "4.02"
|
||||
then {
|
||||
version = "1.7";
|
||||
@ -15,18 +16,20 @@ let param =
|
||||
};
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "zarith-${version}";
|
||||
inherit (param) version;
|
||||
buildOcaml rec {
|
||||
name = "zarith";
|
||||
inherit (source) version;
|
||||
src = fetchurl { inherit (source) url sha256; };
|
||||
|
||||
src = fetchurl {
|
||||
inherit (param) url sha256;
|
||||
};
|
||||
minimumSupportedOcamlVersion = "3.12.1";
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
buildInputs = [ ocaml findlib perl ];
|
||||
propagatedBuildInputs = [ gmp ];
|
||||
|
||||
# needed so setup-hook.sh sets CAML_LD_LIBRARY_PATH for dllzarith.so
|
||||
hasSharedObjects = true;
|
||||
|
||||
patchPhase = "patchShebangs ./z_pp.pl";
|
||||
configurePhase = ''
|
||||
./configure -installdir $out/lib/ocaml/${ocaml.version}/site-lib
|
||||
|
Loading…
Reference in New Issue
Block a user