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 |
} |