Signed-off-by: David Seifert <s...@gentoo.org>
---
 eclass/dune.eclass | 54 +++++++++++++++++++++++++---------------------
 1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/eclass/dune.eclass b/eclass/dune.eclass
index 1061461b699..a7c0a0b652f 100644
--- a/eclass/dune.eclass
+++ b/eclass/dune.eclass
@@ -8,12 +8,20 @@
 # ML <m...@gentoo.org>
 # @AUTHOR:
 # Rafael Kitover <rkito...@gmail.com>
-# @SUPPORTED_EAPIS: 6 7 8
+# @SUPPORTED_EAPIS: 7 8
 # @BLURB: Provides functions for installing Dune packages.
 # @DESCRIPTION:
 # Provides dependencies on Dune and OCaml and default src_compile, src_test and
 # src_install for Dune-based packages.
 
+case ${EAPI} in
+       7|8) ;;
+       *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
+esac
+
+if [[ ! ${_DUNE_ECLASS} ]]; then
+_DUNE_ECLASS=1
+
 # @ECLASS_VARIABLE: DUNE_PKG_NAME
 # @PRE_INHERIT
 # @DESCRIPTION:
@@ -21,28 +29,20 @@
 # Set before inheriting the eclass.
 : ${DUNE_PKG_NAME:=${PN}}
 
-case ${EAPI:-0} in
-       6|7|8) ;;
-       *) die "${ECLASS}: EAPI ${EAPI} not supported" ;;
-esac
-
 inherit multiprocessing
 
 # Do not complain about CFLAGS etc since ml projects do not use them.
 QA_FLAGS_IGNORED='.*'
 
-EXPORT_FUNCTIONS src_compile src_test src_install
-
-RDEPEND=">=dev-lang/ocaml-4:=[ocamlopt?] dev-ml/dune:="
-case ${EAPI:-0} in
-       6)
-               DEPEND="${RDEPEND} dev-ml/dune"
-               ;;
-       *)
-               BDEPEND="dev-ml/dune dev-lang/ocaml"
-               DEPEND="${RDEPEND}"
-               ;;
-esac
+RDEPEND="
+       >=dev-lang/ocaml-4:=[ocamlopt?]
+       dev-ml/dune:=
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       dev-ml/dune
+       dev-lang/ocaml
+"
 
 dune_src_compile() {
        ebegin "Building"
@@ -72,9 +72,9 @@ dune-install() {
        [[ ${#pkgs[@]} -eq 0 ]] && pkgs=( "${DUNE_PKG_NAME}" )
 
        local -a myduneopts=(
-               --prefix="${ED%/}/usr"
-               --libdir="${D%/}$(ocamlc -where)"
-               --mandir="${ED%/}/usr/share/man"
+               --prefix="${ED}/usr"
+               --libdir="${D}$(ocamlc -where)"
+               --mandir="${ED}/usr/share/man"
        )
 
        local pkg
@@ -84,10 +84,10 @@ dune-install() {
                eend $? || die
 
                # Move docs to the appropriate place.
-               if [ -d "${ED%/}/usr/doc/${pkg}" ] ; then
-                       mkdir -p "${ED%/}/usr/share/doc/${PF}/" || die
-                       mv "${ED%/}/usr/doc/${pkg}" 
"${ED%/}/usr/share/doc/${PF}/" || die
-                       rm -rf "${ED%/}/usr/doc" || die
+               if [[ -d "${ED}/usr/doc/${pkg}" ]] ; then
+                       mkdir -p "${ED}/usr/share/doc/${PF}/" || die
+                       mv "${ED}/usr/doc/${pkg}" "${ED}/usr/share/doc/${PF}/" 
|| die
+                       rm -rf "${ED}/usr/doc" || die
                fi
        done
 }
@@ -95,3 +95,7 @@ dune-install() {
 dune_src_install() {
        dune-install ${1:-${DUNE_PKG_NAME}}
 }
+
+fi
+
+EXPORT_FUNCTIONS src_compile src_test src_install
-- 
2.39.0


Reply via email to