Gentoo Archives: gentoo-commits

From: Sergei Trofimovich <slyfox@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/
Date: Sat, 30 Jan 2021 09:54:52
Message-Id: 1612000479.7f574ec2ad2b40f55ad02de8a2ea95d79715dc0f.slyfox@gentoo
1 commit: 7f574ec2ad2b40f55ad02de8a2ea95d79715dc0f
2 Author: hololeap <hololeap <AT> gmail <DOT> com>
3 AuthorDate: Sat Jan 30 09:27:14 2021 +0000
4 Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
5 CommitDate: Sat Jan 30 09:54:39 2021 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f574ec2
7
8 haskell-cabal.eclass: add CABAL_EXTRA_*_FLAGS for haddock
9
10 Add functionality to append arguments to `./setup haddock` and
11 `./setup hscolour`. This also merited cleanup of some relevant
12 chunks of code.
13
14 This adds the eclass variables:
15 - CABAL_EXTRA_HADDOCK_FLAGS
16 - CABAL_EXTRA_HOOGLE_FLAGS
17 - CABAL_ExTRA_HSCOLOUR_FLAGS
18
19 Signed-off-by: hololeap <hololeap <AT> gmail.com>
20 Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>
21
22 eclass/haskell-cabal.eclass | 108 ++++++++++++++++++--------------------------
23 1 file changed, 45 insertions(+), 63 deletions(-)
24
25 diff --git a/eclass/haskell-cabal.eclass b/eclass/haskell-cabal.eclass
26 index 505eab43738..6099363bc9a 100644
27 --- a/eclass/haskell-cabal.eclass
28 +++ b/eclass/haskell-cabal.eclass
29 @@ -62,6 +62,28 @@ inherit eutils ghc-package multilib toolchain-funcs
30 # linking 'setup' faster.
31 : ${GHC_BOOTSTRAP_FLAGS:=}
32
33 +# @ECLASS-VARIABLE: CABAL_EXTRA_HADDOCK_FLAGS
34 +# @DESCRIPTION:
35 +# User-specified additional parameters passed to 'setup haddock'.
36 +# example: /etc/portage/make.conf:
37 +# CABAL_EXTRA_HADDOCK_FLAGS="--haddock-options=--latex --haddock-options=--pretty-html"
38 +: ${CABAL_EXTRA_HADDOCK_FLAGS:=}
39 +
40 +# @ECLASS-VARIABLE: CABAL_EXTRA_HOOGLE_FLAGS
41 +# @DESCRIPTION:
42 +# User-specified additional parameters passed to 'setup haddock --hoogle'.
43 +# example: /etc/portage/make.conf:
44 +# CABAL_EXTRA_HOOGLE_FLAGS="--haddock-options=--show-all"
45 +: ${CABAL_EXTRA_HOOGLE_FLAGS:=}
46 +
47 +# @ECLASS-VARIABLE: CABAL_EXTRA_HSCOLOUR_FLAGS
48 +# @DESCRIPTION:
49 +# User-specified additional parameters passed to 'setup hscolour'.
50 +# example: /etc/portage/make.conf:
51 +# CABAL_EXTRA_HSCOLOUR_FLAGS="--executables --tests"
52 +: ${CABAL_EXTRA_HSCOLOUR_FLAGS:=}
53 +
54 +
55 # @ECLASS-VARIABLE: CABAL_EXTRA_TEST_FLAGS
56 # @DESCRIPTION:
57 # User-specified additional parameters passed to 'setup test'.
58 @@ -232,43 +254,17 @@ cabal-mksetup() {
59 > "${setup_src}" || die "failed to create default Setup.hs"
60 }
61
62 -cabal-hscolour() {
63 - set -- hscolour "$@"
64 - echo ./setup "$@"
65 - ./setup "$@" || die "setup hscolour failed"
66 -}
67 -
68 -cabal-haddock() {
69 - set -- haddock "$@"
70 - echo ./setup "$@"
71 - ./setup "$@" || die "setup haddock failed"
72 -}
73 -
74 -cabal-hoogle() {
75 - ewarn "hoogle USE flag requires doc USE flag, building without hoogle"
76 +haskell-cabal-run_verbose() {
77 + echo "$@"
78 + "$@" || die "failed: $@"
79 }
80
81 -cabal-hscolour-haddock() {
82 - # --hyperlink-source implies calling 'setup hscolour'
83 - set -- haddock --hyperlink-source
84 - echo ./setup "$@"
85 - ./setup "$@" --hyperlink-source || die "setup haddock --hyperlink-source failed"
86 -}
87 -
88 -cabal-hoogle-haddock() {
89 - set -- haddock --hoogle
90 - echo ./setup "$@"
91 - ./setup "$@" || die "setup haddock --hoogle failed"
92 -}
93 -
94 -cabal-hoogle-hscolour-haddock() {
95 - cabal-hscolour-haddock
96 - cabal-hoogle-haddock
97 +cabal-hscolour() {
98 + haskell-cabal-run_verbose ./setup hscolour "$@"
99 }
100
101 -cabal-hoogle-hscolour() {
102 - ewarn "hoogle USE flag requires doc USE flag, building without hoogle"
103 - cabal-hscolour
104 +cabal-haddock() {
105 + haskell-cabal-run_verbose ./setup haddock "$@"
106 }
107
108 cabal-die-if-nonempty() {
109 @@ -546,23 +542,16 @@ cabal_src_compile() {
110 has src_configure ${HASKELL_CABAL_EXPF} || haskell-cabal_src_configure "$@"
111 cabal-build
112
113 - if [[ -n "${CABAL_USE_HADDOCK}" ]] && use doc; then
114 - if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then
115 - if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
116 - # hoogle, hscolour and haddock
117 - cabal-hoogle-hscolour-haddock
118 - else
119 - # haddock and hscolour
120 - cabal-hscolour-haddock
121 - fi
122 - else
123 - if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
124 - # hoogle and haddock
125 - cabal-hoogle-haddock
126 - else
127 - # just haddock
128 - cabal-haddock
129 - fi
130 + if [[ -n "$CABAL_USE_HADDOCK" ]] && use doc; then
131 + if [[ -n "$CABAL_USE_HSCOLOUR" ]] && use hscolour; then
132 + # --hyperlink-source implies calling 'setup hscolour'
133 + haddock_args+=(--hyperlink-source)
134 + fi
135 +
136 + cabal-haddock "${haddock_args[@]}" $CABAL_EXTRA_HADDOCK_FLAGS
137 +
138 + if [[ -n "$CABAL_USE_HOOGLE" ]] && use hoogle; then
139 + cabal-haddock --hoogle $CABAL_EXTRA_HOOGLE_FLAGS
140 fi
141 if [[ -n "${CABAL_REBUILD_AFTER_DOC_WORKAROUND}" ]]; then
142 ewarn "rebuild-after-doc-workaround is enabled. This is a"
143 @@ -571,19 +560,12 @@ cabal_src_compile() {
144 cabal-build
145 fi
146 else
147 - if [[ -n "${CABAL_USE_HSCOLOUR}" ]] && use hscolour; then
148 - if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
149 - # hoogle and hscolour
150 - cabal-hoogle-hscolour
151 - else
152 - # just hscolour
153 - cabal-hscolour
154 - fi
155 - else
156 - if [[ -n "${CABAL_USE_HOOGLE}" ]] && use hoogle; then
157 - # just hoogle
158 - cabal-hoogle
159 - fi
160 + if [[ -n "$CABAL_USE_HSCOLOUR" ]] && use hscolour; then
161 + cabal-hscolour $CABAL_EXTRA_HSCOLOUR_FLAGS
162 + fi
163 +
164 + if [[ -n "$CABAL_USE_HOOGLE" ]] && use hoogle; then
165 + ewarn "hoogle USE flag requires doc USE flag, building without hoogle"
166 fi
167 fi
168 }