51 lines
1.3 KiB
Bash
51 lines
1.3 KiB
Bash
|
# 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
|