diff options
author | Vincent Laporte <Vincent.Laporte@gmail.com> | 2023-08-04 18:25:08 +0200 |
---|---|---|
committer | Vincent Laporte <vbgl@users.noreply.github.com> | 2023-08-11 19:10:36 +0200 |
commit | 032f6c6f936589f3020ffc303dea4c566bfd281f (patch) | |
tree | 744b0c5811141494a54145e146966edd4128601c /pkgs/development | |
parent | 7e5ada58a9c737e6ef95e1cf5ac1aaf6e11a1dd8 (diff) |
ocamlPackages.camlp5: 7.14 → 8.00.05
Diffstat (limited to 'pkgs/development')
-rw-r--r-- | pkgs/development/tools/ocaml/camlp5/default.nix | 56 |
1 files changed, 41 insertions, 15 deletions
diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix index 9d81c46e20c9f..a09f226b3f136 100644 --- a/pkgs/development/tools/ocaml/camlp5/default.nix +++ b/pkgs/development/tools/ocaml/camlp5/default.nix @@ -1,31 +1,57 @@ -{ lib, stdenv, fetchFromGitHub, ocaml, perl }: +{ lib, stdenv, fetchFromGitHub, ocaml, findlib, perl, makeWrapper +, rresult, bos, ocaml_pcre, re, camlp-streams +}: if lib.versionOlder ocaml.version "4.02" -|| lib.versionOlder "4.13" ocaml.version then throw "camlp5 is not available for OCaml ${ocaml.version}" else -stdenv.mkDerivation rec { +let params = + if lib.versionAtLeast ocaml.version "4.12" + then rec { + version = "8.00.05"; - pname = "camlp5"; - version = "7.14"; + src = fetchFromGitHub { + owner = "camlp5"; + repo = "camlp5"; + rev = version; + hash = "sha256-Havr3RB6iUP7QzV+LUGwMHtGzmRdS5RqYsqJ0N5w6gE="; + }; - src = fetchFromGitHub { - owner = "camlp5"; - repo = "camlp5"; - rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}"; - sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w"; - }; + nativeBuildInputs = [ makeWrapper ocaml findlib perl ]; + buildInputs = [ bos ocaml_pcre re rresult ]; + propagatedBuildInputs = [ camlp-streams ]; - strictDeps = true; + postFixup = '' + for p in camlp5 camlp5o camlp5r camlp5sch mkcamlp5 ocpp5 + do + wrapProgram $out/bin/$p \ + --suffix CAML_LD_LIBRARY_PATH : ${ocaml_pcre}/lib/ocaml/${ocaml.version}/site-lib/stublibs + done + ''; + } else rec { + version = "7.14"; + src = fetchFromGitHub { + owner = "camlp5"; + repo = "camlp5"; + rev = "rel${builtins.replaceStrings [ "." ] [ "" ] version}"; + sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w"; + }; + nativeBuildInputs = [ ocaml perl ]; + } +; in - nativeBuildInputs = [ ocaml perl ]; +stdenv.mkDerivation (params // { + + pname = "ocaml${ocaml.version}-camlp5"; + + strictDeps = true; prefixKey = "-prefix "; preConfigure = '' configureFlagsArray=(--strict --libdir $out/lib/ocaml/${ocaml.version}/site-lib) - patchShebangs ./config/find_stuffversion.pl + patchShebangs ./config/find_stuffversion.pl etc/META.pl ''; buildFlags = [ "world.opt" ]; @@ -45,4 +71,4 @@ stdenv.mkDerivation rec { maggesi vbgl ]; }; -} +}) |