nixpkgs/pkgs/development/ocaml-modules/menhir/generic.nix
Profpatsch 4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01:00

44 lines
1.2 KiB
Nix

{ version, src, lib, stdenv, ocaml, findlib, ocamlbuild, ... }:
stdenv.mkDerivation {
pname = "menhir";
inherit version;
inherit src;
buildInputs = [ ocaml findlib ocamlbuild ];
createFindlibDestdir = true;
preBuild = ''
# fix makefiles.
RM=$(type -p rm)
CHMOD=$(type -p chmod)
for f in src/Makefile demos/OMakefile* demos/Makefile*
do
substituteInPlace $f \
--replace /bin/rm $RM \
--replace /bin/chmod $CHMOD
done
export PREFIX=$out
'';
meta = with lib; {
homepage = "http://pauillac.inria.fr/~fpottier/menhir/";
description = "A LR(1) parser generator for OCaml";
longDescription = ''
Menhir is a LR(1) parser generator for the Objective Caml programming
language. That is, Menhir compiles LR(1) grammar specifications down
to OCaml code. Menhir was designed and implemented by François Pottier
and Yann Régis-Gianas.
'';
license = with licenses; [
(if versionAtLeast version "20170418" then gpl2 else qpl) /* generator */
lgpl2 /* library */
];
platforms = ocaml.meta.platforms or [];
maintainers = with maintainers; [ maggesi ];
};
}