# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit dune multiprocessing DESCRIPTION="Map OCaml arrays onto C-like structs" HOMEPAGE=" https://github.com/mirage/ocaml-cstruct https://opam.ocaml.org/packages/cstruct/ " SRC_URI="https://github.com/mirage/ocaml-cstruct/archive/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/ocaml-${P}" LICENSE="ISC" SLOT="0/${PV}" KEYWORDS="~amd64" IUSE="async lwt ocamlopt ppx sexp test unix" RDEPEND=" >=dev-lang/ocaml-4.08.0:=[ocamlopt?] >=dev-ml/fmt-0.8.9:= async? ( >=dev-ml/async-0.9.0:= >=dev-ml/async_unix-0.9.0:= >=dev-ml/core-0.9.0:= ) lwt? ( dev-ml/lwt:= ) ppx? ( >=dev-ml/ppxlib-0.16.0:= dev-ml/stdlib-shims:= ) sexp? ( >=dev-ml/sexplib-0.9.0:= ) " DEPEND=" ${RDEPEND} test? ( dev-ml/alcotest dev-ml/crowbar >=dev-ml/ocaml-migrate-parsetree-2.1.0 dev-ml/ppx_sexp_conv dev-ml/cppo >=dev-ml/lwt-2.0.2 ) " RESTRICT="!test? ( test )" REQUIRED_USE=" ppx? ( sexp ) test? ( sexp ppx ) " src_compile() { local pkgs="cstruct" use ppx && pkgs="${pkgs},ppx_cstruct" for u in async lwt sexp unix ; do if use ${u} ; then pkgs="${pkgs},cstruct-${u}" fi done dune build -p "${pkgs}" -j $(makeopts_jobs) || die } src_install() { dune_src_install cstruct use async && dune_src_install cstruct-async use lwt && dune_src_install cstruct-lwt use sexp && dune_src_install cstruct-sexp use unix && dune_src_install cstruct-unix use ppx && dune_src_install ppx_cstruct }