mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-07-20 04:23:16 -04:00
R-packages.eclass: add documentation comments
Signed-off-by: Alessandro Barbieri <lssndrbarbieri@gmail.com>
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
# Copyright 1999-2021 Gentoo Authors
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: R-packages.eclass
|
||||
# @AUTHOR:
|
||||
# André Erdmann <dywi@mailerd.de>
|
||||
# Denis Dupeyron <calchan@gentoo.org>
|
||||
# Benda Xu <heroxbd@gentoo.org>
|
||||
# Alessandro Barbieri <lssndrbarbieri@gmail.com>
|
||||
# @BLURB: eclass to build R packages
|
||||
# @MAINTAINER:
|
||||
# Alessandro Barbieri <lssndrbarbieri@gmail.com>
|
||||
# @SUPPORTED_EAPIS: 7
|
||||
|
||||
inherit eutils optfeature toolchain-funcs
|
||||
|
||||
EXPORT_FUNCTIONS src_unpack src_prepare src_compile src_install pkg_postinst
|
||||
case ${EAPI} in
|
||||
7) ;;
|
||||
*) die "${ECLASS}: EAPI ${EAPI} unsupported."
|
||||
esac
|
||||
|
||||
EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install pkg_postinst
|
||||
|
||||
SRC_URI="mirror://cran/src/contrib/${PN}_${PV}.tar.gz"
|
||||
HOMEPAGE="https://cran.r-project.org/package=${PN}"
|
||||
@@ -12,14 +28,24 @@ SLOT="0"
|
||||
|
||||
DEPEND="dev-lang/R"
|
||||
RDEPEND="${DEPEND}"
|
||||
BDEPEND="sys-apps/pkgcore"
|
||||
|
||||
dodocrm() {
|
||||
# @FUNCTION: _movelink
|
||||
# @INTERNAL
|
||||
# @USAGE: [<source> <dest>]
|
||||
# @DESCRIPTION:
|
||||
# <dest> will contain symlinks to everything in <source>
|
||||
_movelink() {
|
||||
if [ -e "${1}" ]; then
|
||||
dodoc -r "${1}"
|
||||
rm -rf "${1}" || die
|
||||
local rp1="$(realpath ${1})" || die
|
||||
mv "${rp1}" "${2}" || die
|
||||
cp -rsf "${2}" "${rp1}" || die
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: R-packages_src_unpack
|
||||
# @DESCRIPTION:
|
||||
# function to unpack R packages into the right folder
|
||||
R-packages_src_unpack() {
|
||||
unpack ${A}
|
||||
if [[ -d "${PN//_/.}" ]] && [[ ! -d "${P}" ]]; then
|
||||
@@ -27,43 +53,91 @@ R-packages_src_unpack() {
|
||||
fi
|
||||
}
|
||||
|
||||
# @FUNCTION: R-packages_src_prepare
|
||||
# @DESCRIPTION:
|
||||
# function to remove unwanted files from the sources
|
||||
R-packages_src_prepare() {
|
||||
rm -f LICENSE || die
|
||||
default
|
||||
}
|
||||
|
||||
# @FUNCTION: R-packages_src_configure
|
||||
# @DESCRIPTION:
|
||||
# dummy function to disable configure
|
||||
R-packages_src_configure() { :; }
|
||||
|
||||
# @FUNCTION: R-packages_src_compile
|
||||
# @DESCRIPTION:
|
||||
# function that will pass some environment variables to R and then build/install the package
|
||||
R-packages_src_compile() {
|
||||
MAKEFLAGS="AR=$(tc-getAR) CFLAGS=${CFLAGS// /\\ } CXXFLAGS=${CXXFLAGS// /\\ } FFLAGS=${FFLAGS// /\\ } FCFLAGS=${FCFLAGS// /\\ } LDFLAGS=${LDFLAGS// /\\ }" R CMD INSTALL . -l "${WORKDIR}" "--byte-compile" || die
|
||||
MAKEFLAGS=" \
|
||||
${MAKEFLAGS// /\\ } \
|
||||
AR=$(tc-getAR) \
|
||||
CC=$(tc-getCC) \
|
||||
CPP=$(tc-getCPP) \
|
||||
CXX=$(tc-getCXX) \
|
||||
FC=$(tc-getFC) \
|
||||
LD=$(tc-getLD) \
|
||||
NM=$(tc-getNM) \
|
||||
RANLIB=$(tc-getRANLIB) \
|
||||
CFLAGS=${CFLAGS// /\\ } \
|
||||
CPPFLAGS=${CPPFLAGS// /\\ } \
|
||||
CXXFLAGS=${CXXFLAGS// /\\ } \
|
||||
FFLAGS=${FFLAGS// /\\ } \
|
||||
FCFLAGS=${FCFLAGS// /\\ } \
|
||||
LDFLAGS=${LDFLAGS// /\\ } \
|
||||
MAKEOPTS=${MAKEOPTS// /\\ } \
|
||||
" \
|
||||
R CMD INSTALL . -l "${WORKDIR}" "--byte-compile" || die
|
||||
}
|
||||
|
||||
|
||||
# @FUNCTION: R-packages_src_install
|
||||
# @DESCRIPTION:
|
||||
# function to move the files in the right folders
|
||||
# documentation and examples to docsdir, symlinked back to R site-library (to allow access from within R)
|
||||
# everything else to R site-library
|
||||
R-packages_src_install() {
|
||||
cd "${WORKDIR}/${PN//_/.}" || die
|
||||
pushd "${WORKDIR}/${PN//_/.}" || die
|
||||
|
||||
dodocrm examples || die
|
||||
#dodocrm DESCRIPTION || die #keep this
|
||||
dodocrm NEWS.md || die
|
||||
dodocrm README.md || die
|
||||
dodocrm html || die
|
||||
local DOCS_DIR="${ED}/usr/share/doc/${PF}"
|
||||
|
||||
if [ -e doc ]; then
|
||||
if [ -e doc/html ]; then
|
||||
docinto "${DOCSDIR}/html"
|
||||
dodoc -r doc/*.html
|
||||
rm -r doc/*.html || die
|
||||
docompress -x "${DOCSDIR}/html"
|
||||
fi
|
||||
mkdir -p "${DOCS_DIR}" || die
|
||||
|
||||
docinto "${DOCSDIR}"
|
||||
dodoc -r doc/.
|
||||
rm -r doc || die
|
||||
for i in NEWS.md README.md DESCRIPTION examples ; do
|
||||
_movelink "${i}" "${DOCS_DIR}/${i}" || die
|
||||
done
|
||||
|
||||
if [ -e html ]; then
|
||||
_movelink html "${DOCS_DIR}/html" || die
|
||||
docompress -x "${DOCS_DIR}/html"
|
||||
fi
|
||||
if [ -e doc ]; then
|
||||
pushd doc || die
|
||||
for i in * ; do
|
||||
_movelink "${i}" "${DOCS_DIR}/${i}" || die
|
||||
done
|
||||
popd || die
|
||||
fi
|
||||
if [ -e doc/html ]; then
|
||||
docompress -x "${DOCS_DIR}/html"
|
||||
fi
|
||||
docompress -x "${DOCS_DIR}"
|
||||
|
||||
insinto "/usr/$(get_libdir)/R/site-library"
|
||||
doins -r "${WORKDIR}/${PN//_/.}"
|
||||
}
|
||||
|
||||
# @FUNCTION: R-packages_pkg_postinst
|
||||
# @DESCRIPTION:
|
||||
# function that will prompt to install the suggested packages if they exist
|
||||
R-packages_pkg_postinst() {
|
||||
if [ -v SUGGESTED_PACKAGES ]; then
|
||||
optfeature "having the upstream suggested packages" "${SUGGESTED_PACKAGES}"
|
||||
for p in ${SUGGESTED_PACKAGES} ; do
|
||||
pexist=$(pquery -n1 "${p}" 2>/dev/null) || die
|
||||
if [ -n "${pexist}" ]; then
|
||||
optfeature "having the upstream suggested package" "${p}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user