commit: 7f574ec2ad2b40f55ad02de8a2ea95d79715dc0f
Author: hololeap <hololeap <AT> gmail <DOT> com>
AuthorDate: Sat Jan 30 09:27:14 2021 +0000
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Jan 30 09:54:39 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f574ec2
haskell-cabal.eclass: add CABAL_EXTRA_*_FLAGS for haddock
Add functionality to append arguments to `./setup haddock` and
`./setup hscolour`. This also merited cleanup of some relevant
chunks of code.
This adds the eclass variables:
- CABAL_EXTRA_HADDOCK_FLAGS
- CABAL_EXTRA_HOOGLE_FLAGS
- CABAL_ExTRA_HSCOLOUR_FLAGS
Signed-off-by: hololeap <hololeap <AT> gmail.com>
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
eclass/haskell-cabal.eclass | 108 ++++++++++++++++++--------------------------
1 file changed, 45 insertions(+), 63 deletions(-)
diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass
index 505eab43738..6099363bc9a 100644
--- a/eclass/haskell-cabal.eclass
+++ b/eclass/haskell-cabal.eclass
@@ -62,6 +62,28 @@ inherit eutils ghc-package multilib toolchain-funcs
# linking 'setup' faster.
: ${GHC_BOOTSTRAP_FLAGS:=}
+# @ECLASS-VARIABLE: CABAL_EXTRA_HADDOCK_FLAGS
+# @DESCRIPTION:
+# User-specified additional parameters passed to 'setup haddock'.
+# example: /etc/portage/make.conf:
+# CABAL_EXTRA_HADDOCK_FLAGS="--haddock-options=--latex
--haddock-options=--pretty-html"
+: ${CABAL_EXTRA_HADDOCK_FLAGS:=}
+
+# @ECLASS-VARIABLE: CABAL_EXTRA_HOOGLE_FLAGS
+# @DESCRIPTION:
+# User-specified additional parameters passed to 'setup haddock --hoogle'.
+# example: /etc/portage/make.conf:
+# CABAL_EXTRA_HOOGLE_FLAGS="--haddock-options=--show-all"
+: ${CABAL_EXTRA_HOOGLE_FLAGS:=}
+
+# @ECLASS-VARIABLE: CABAL_EXTRA_HSCOLOUR_FLAGS
+# @DESCRIPTION:
+# User-specified additional parameters passed to 'setup hscolour'.
+# example: /etc/portage/make.conf:
+# CABAL_EXTRA_HSCOLOUR_FLAGS="--executables --tests"
+: ${CABAL_EXTRA_HSCOLOUR_FLAGS:=}
+
+
# @ECLASS-VARIABLE: CABAL_EXTRA_TEST_FLAGS
# @DESCRIPTION:
# User-specified additional parameters passed to 'setup test'.
@@ -232,43 +254,17 @@ cabal-mksetup() {
> "${setup_src}" || die "failed to create default Setup.hs"
}
-cabal-hscolour() {
- set -- hscolour "$@"
- echo ./setup "$@"
- ./setup "$@" || die "setup hscolour failed"
-}
-
-cabal-haddock() {
- set -- haddock "$@"
- echo ./setup "$@"
- ./setup "$@" || die "setup haddock failed"
-}
-
-cabal-hoogle() {
- ewarn "hoogle USE flag requires doc USE flag, building without hoogle"
+haskell-cabal-run_verbose() {
+ echo "$@"
+ "$@" || die "failed: $@"
}
-cabal-hscolour-haddock() {
- # --hyperlink-source implies calling 'setup hscolour'
- set -- haddock --hyperlink-source
- echo ./setup "$@"
- ./setup "$@" --hyperlink-source || die "setup haddock
--hyperlink-source failed"
-}
-
-cabal-hoogle-haddock() {
- set -- haddock --hoogle
- echo ./setup "$@"
- ./setup "$@" || die "setup haddock --hoogle failed"
-}
-
-cabal-hoogle-hscolour-haddock() {
- cabal-hscolour-haddock
- cabal-hoogle-haddock
+cabal-hscolour() {
+ haskell-cabal-run_verbose ./setup hscolour "$@"
}
-cabal-hoogle-hscolour() {
- ewarn "hoogle USE flag requires doc USE flag, building without hoogle"
- cabal-hscolour
+cabal-haddock() {
+ haskell-cabal-run_verbose ./setup haddock "$@"
}
cabal-die-if-nonempty() {
@@ -546,23 +542,16 @@ cabal_src_compile() {
has src_configure ${HASKELL_CABAL_EXPF} || haskell-cabal_src_configure
"$@"
cabal-build
- if [[ -n "${CABAL_USE_HADDOCK}" ]] && use doc; then
- if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then
- if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
- # hoogle, hscolour and haddock
- cabal-hoogle-hscolour-haddock
- else
- # haddock and hscolour
- cabal-hscolour-haddock
- fi
- else
- if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
- # hoogle and haddock
- cabal-hoogle-haddock
- else
- # just haddock
- cabal-haddock
- fi
+ if [[ -n "$CABAL_USE_HADDOCK" ]] && use doc; then
+ if [[ -n "$CABAL_USE_HSCOLOUR" ]] && use hscolour; then
+ # --hyperlink-source implies calling 'setup hscolour'
+ haddock_args+=(--hyperlink-source)
+ fi
+
+ cabal-haddock "${haddock_args[@]}" $CABAL_EXTRA_HADDOCK_FLAGS
+
+ if [[ -n "$CABAL_USE_HOOGLE" ]] && use hoogle; then
+ cabal-haddock --hoogle $CABAL_EXTRA_HOOGLE_FLAGS
fi
if [[ -n "${CABAL_REBUILD_AFTER_DOC_WORKAROUND}" ]]; then
ewarn "rebuild-after-doc-workaround is enabled. This is
a"
@@ -571,19 +560,12 @@ cabal_src_compile() {
cabal-build
fi
else
- if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then
- if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
- # hoogle and hscolour
- cabal-hoogle-hscolour
- else
- # just hscolour
- cabal-hscolour
- fi
- else
- if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
- # just hoogle
- cabal-hoogle
- fi
+ if [[ -n "$CABAL_USE_HSCOLOUR" ]] && use hscolour; then
+ cabal-hscolour $CABAL_EXTRA_HSCOLOUR_FLAGS
+ fi
+
+ if [[ -n "$CABAL_USE_HOOGLE" ]] && use hoogle; then
+ ewarn "hoogle USE flag requires doc USE flag, building
without hoogle"
fi
fi
}