mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-06 20:23:39 +00:00
ocamlPackages.menhir: support --suggest-menhirLib
menhir provides a `--suggest-menhirLib` option that tries to infer the path of the menhir library from the path of the menhir binary. Since the menhir library and the menhir binary are built as different derivations, this does not work. This patch hardcodes the location of the menhir library into the menhir binary, making `--suggest-menhirLib` work.
This commit is contained in:
parent
18e1305cc4
commit
32a6049ad5
@ -1,4 +1,4 @@
|
||||
{ buildDunePackage
|
||||
{ buildDunePackage, substituteAll, ocaml
|
||||
, menhirLib, menhirSdk
|
||||
}:
|
||||
|
||||
@ -11,6 +11,13 @@ buildDunePackage rec {
|
||||
|
||||
buildInputs = [ menhirLib menhirSdk ];
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./menhir-suggest-menhirLib.patch;
|
||||
libdir = "${menhirLib}/lib/ocaml/${ocaml.version}/site-lib/menhirLib";
|
||||
})
|
||||
];
|
||||
|
||||
meta = menhirSdk.meta // {
|
||||
description = "LR(1) parser generator for OCaml";
|
||||
mainProgram = "menhir";
|
||||
|
@ -0,0 +1,19 @@
|
||||
diff --git a/src/installation.ml b/src/installation.ml
|
||||
index 3c64e395..be7d6e7b 100644
|
||||
--- a/src/installation.ml
|
||||
+++ b/src/installation.ml
|
||||
@@ -39,13 +39,4 @@ let rec normalize fn =
|
||||
and hope that it is of the form [.../bin/menhir]. We change this to
|
||||
[.../lib/menhirLib], and hope that this is where MenhirLib is installed. *)
|
||||
|
||||
-let libdir () =
|
||||
- let root =
|
||||
- Sys.executable_name
|
||||
- |> normalize
|
||||
- |> Filename.dirname (* remove [menhir] *)
|
||||
- |> Filename.dirname (* remove [bin] *)
|
||||
- in
|
||||
- Filename.concat
|
||||
- root
|
||||
- (Filename.concat "lib" "menhirLib")
|
||||
+let libdir () = ignore normalize; "@libdir@"
|
Loading…
Reference in New Issue
Block a user