summaryrefslogtreecommitdiff
path: root/eclass/opam.eclass
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /eclass/opam.eclass
reinit the tree, so we can have metadata
Diffstat (limited to 'eclass/opam.eclass')
-rw-r--r--eclass/opam.eclass50
1 files changed, 50 insertions, 0 deletions
diff --git a/eclass/opam.eclass b/eclass/opam.eclass
new file mode 100644
index 000000000000..76b2fcbfd53f
--- /dev/null
+++ b/eclass/opam.eclass
@@ -0,0 +1,50 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# @ECLASS: opam.eclass
+# @MAINTAINER:
+# Gentoo ML Project <ml@gentoo.org>
+# @AUTHOR:
+# Alexis Ballier <aballier@gentoo.org>
+# @BLURB: Provides functions for installing opam packages.
+# @DESCRIPTION:
+# Provides dependencies on opam and ocaml, opam-install and a default
+# src_install for opam-based packages.
+
+case ${EAPI:-0} in
+ 0|1|2|3|4) die "You need at least EAPI-5 to use opam.eclass";;
+ *) ;;
+esac
+
+RDEPEND=">=dev-lang/ocaml-4:="
+DEPEND="${RDEPEND}
+ dev-ml/opam"
+
+# @FUNCTION: opam-install
+# @USAGE: <list of packages>
+# @DESCRIPTION:
+# Installs the opam packages given as arguments. For each "${pkg}" element in
+# that list, "${pkg}.install" must be readable from current working directory.
+opam-install() {
+ local pkg
+ for pkg ; do
+ opam-installer -i \
+ --prefix="${ED}usr" \
+ --libdir="${D}$(ocamlc -where)" \
+ --docdir="${ED}usr/share/doc/${PF}" \
+ --mandir="${ED}usr/share/man" \
+ "${pkg}.install" || die
+ done
+}
+
+opam_src_install() {
+ local pkg="${1:-${PN}}"
+ opam-install "${pkg}"
+ # Handle opam putting doc in a subdir
+ if [ -d "${ED}usr/share/doc/${PF}/${pkg}" ] ; then
+ mv "${ED}usr/share/doc/${PF}/${pkg}/"* "${ED}usr/share/doc/${PF}/" || die
+ rmdir "${ED}usr/share/doc/${PF}/${pkg}" || die
+ fi
+}
+
+EXPORT_FUNCTIONS src_install