{
lib,
fetchFromGitHub,
buildDunePackage,
pkg-config,
protobuf,
zarith,
ppx_deriving,
ppx_deriving_yojson,
re,
dune-site,
ppx_expect,
}:
buildDunePackage rec {
pname = "ocaml-protoc-plugin";
version = "4.5.0";
src = fetchFromGitHub {
owner = "issuu";
repo = "ocaml-protoc-plugin";
rev = version;
hash = "sha256-ZHeOi3y2X11MmkRuthmYFSjPLoGlGTO1pnRfk/XmgPU=";
};
nativeBuildInputs = [
pkg-config
protobuf
];
buildInputs = [
zarith
ppx_deriving
ppx_deriving_yojson
re
dune-site
ppx_expect
doCheck = true;
nativeCheckInputs = [ protobuf ];
meta = {
description = "Maps google protobuf compiler to Ocaml types";
homepage = "https://github.com/issuu/ocaml-protoc-plugin";
license = lib.licenses.asl20;
longDescription = ''
The goal of Ocaml protoc plugin is to create an
up to date plugin for the google protobuf compiler
(protoc) to generate Ocaml types and serialization
and de-serialization function from a .proto file.
'';
maintainers = [ lib.maintainers.GirardR1006 ];
}