1{
2 lib,
3 mkCoqDerivation,
4 coq,
5 stdlib,
6 version ? null,
7}:
8let
9 MenhirLib = mkCoqDerivation {
10 pname = "MenhirLib";
11 owner = "fpottier";
12 repo = "menhir";
13 domain = "gitlab.inria.fr";
14 inherit version;
15 defaultVersion =
16 let
17 case = case: out: { inherit case out; };
18 in
19 with lib.versions;
20 lib.switch coq.coq-version [
21 (case (range "8.12" "9.1") "20240715")
22 (case (range "8.7" "8.11") "20200624")
23 ] null;
24 release = {
25 "20240715".sha256 = "sha256-9CSxAIm0aEXkwF+aj8u/bqLG30y5eDNz65EnohJPjzI="; # coq 8.9 - 8.20
26 "20231231".sha256 = "sha256-veB0ORHp6jdRwCyDDAfc7a7ov8sOeHUmiELdOFf/QYk="; # coq 8.7 - 8.19
27 "20230608".sha256 = "sha256-dUPoIUVr3gqvE5bniyQh/b37tNfRsZN8X3e99GFkyLY="; # coq 8.7 - 8.18
28 "20230415".sha256 = "sha256-WjE3iOKlUb15MDG3+GOi+nertAw9L2Ryazi/0JEvjqc="; # coq 8.7 - 8.18
29 "20220210".sha256 = "sha256-Nljrgq8iW17qbn2PLIbjPd03WCcZm08d1DF6NrKOYTg="; # coq 8.7 - 8.18
30 "20211230".sha256 = "sha256-+ntl4ykkqJWEeJJzt6fO5r0X1J+4in2LJIj1N8R175w="; # coq 8.7 - 8.18
31 "20200624".sha256 = "sha256-8lMqwmOsqxU/45Xr+GeyU2aIjrClVdv3VamCCkF76jY="; # coq 8.7 - 8.13
32 };
33 propagatedBuildInputs = [ stdlib ];
34 preBuild = "cd coq-menhirlib/src";
35 meta = {
36 homepage = "https://gitlab.inria.fr/fpottier/menhir/-/tree/master/coq-menhirlib";
37 description = "Support library for verified Coq parsers produced by Menhir";
38 license = lib.licenses.lgpl3Plus;
39 maintainers = with lib.maintainers; [ damhiya ];
40 };
41 };
42in
43MenhirLib.overrideAttrs (
44 oldAttrs:
45 if oldAttrs.version <= "20211230" then
46 { installPhase = "make TARGET=$out/lib/coq/${coq.coq-version}/user-contrib/MenhirLib install"; }
47 else
48 { }
49)