Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/clang/
Date: Sat, 26 Nov 2022 11:09:32
Message-Id: 1669460894.17c04693fe7b6b13ba0a1a77fc0fdd644e1b720a.mgorny@gentoo
1 commit: 17c04693fe7b6b13ba0a1a77fc0fdd644e1b720a
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sat Nov 26 11:08:14 2022 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sat Nov 26 11:08:14 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=17c04693
7
8 sys-devel/clang: Remove 15.0.4
9
10 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
11
12 sys-devel/clang/Manifest | 4 -
13 sys-devel/clang/clang-15.0.4.ebuild | 460 ------------------------------------
14 2 files changed, 464 deletions(-)
15
16 diff --git a/sys-devel/clang/Manifest b/sys-devel/clang/Manifest
17 index ac17e9362b97..311a7c2f47a6 100644
18 --- a/sys-devel/clang/Manifest
19 +++ b/sys-devel/clang/Manifest
20 @@ -1,21 +1,17 @@
21 DIST llvm-13.0.1-manpages.tar.bz2 202187 BLAKE2B 32a761426dbe4c3c355d30660254305cd88b6d513faee04c78e370cea9d38761108a9be4c4b4ac39b6a74400af1f9d37ffd11ab05acd7340175c8d66845ae7d9 SHA512 9495e1daf588540fdb8b9ee905a9b6be4693bd70b7f42c8e8a0d667242fc24dc853c45918d3bc09d02f0761ad61541bc9749c1498e312da129abdab638a0d572
22 DIST llvm-14.0.6-manpages.tar.bz2 218186 BLAKE2B 4491296e490936a2d7b518e19a0ff6312b89abeef3fbe5da5d0b93bb2add1088ddf64a0b00ec8846062d19b1ad31e53eadee7ce03c9034aab554e183d1baccf6 SHA512 f8328dc2ec1e8d941d47e583ee31fae7bdcebb3f854b5c8a4a84bd19a79bf5427ad204012c81349bc05a291e41cf48e5129b4578bbd5d4490dd01e1c0b5823bf
23 DIST llvm-15.0.3-manpages.tar.bz2 229076 BLAKE2B 377809b34339af7deb80856281932d94d694dab2b7dddbac1f82f653f7bf6932c1f3827635d151479fdb6d776de3e3ee4d08aeae4e320e07baaa1b32877f64c5 SHA512 d4872f68f044e55ecf927b0e6fe4206046f60aafcf41009ae5580e0a3f6a6d6a69f4929487b2740124a41f22073eaa8a4a184b367b7f4606402735374294f4f6
24 -DIST llvm-15.0.4-manpages.tar.bz2 226324 BLAKE2B da85a572f69e4a7a0905590dd330e8a391205f9b92d18efef4125d24060b110260324f2f19f277745572e8cd563e2c0834f59511d71dfa741b2c5c6f85d714ff SHA512 be832f6882eafc329684d415330a703ac240048c2e8eb30f91a45dca29a0fb529e11b14a1c38b0ae5758bcdd042cc0a84afc8f2f414b44bb435431c74fdaeef4
25 DIST llvm-15.0.5-manpages.tar.bz2 225568 BLAKE2B d6257b7296b9be118e0729b384331af200cd00eec3228e053f5ae791ef08b632b40723cd30b0ddb229c9c7ca86c1c59f953862b87129f6cd79a9cf2df8f3be9c SHA512 e524b9c0f3c09e0d9b436ec201d0123534d03da55a97fd762ce772c58bdac796a0e70d92dba2e7462ee0a4afc7f4f7e0423f10e4cfd41c801655ec4a5f05b14b
26 DIST llvm-gentoo-patchset-13.0.1.tar.xz 6288 BLAKE2B 899222b962486e924e4f8a2b574d285531a3f87af9385ff68c81db92aa224a0cde6d4ee049b5405056bedb4b232b50e1d5840024071a4a215f6311853304c92d SHA512 b2805337f1deca626768a44c5e7ac9ed16e0c31bead1647d44a493a8123c1b8e8f1c8ceee3536bcc6fa87fdd3fcec408229f701adf30eff07e7ef9889b847b01
27 DIST llvm-gentoo-patchset-14.0.6-r2.tar.xz 16120 BLAKE2B e12e522fdb7ba505693c679cb09cc8e00e6a954df195c86c2af4dbf1b68334a405b8dcc45f2e28b5e5e0b7e9d5eb7ba907337027927371b7a3b7784ff8aae7e0 SHA512 8a5ea71c30fc0727cc855dd812bbcb6d5f51c80c98eb3d5b80258d5c5eaab1310edc9d53ae63c2ca827abec68e2912c4b69ef0da351ff883fb30545a61e1d09c
28 DIST llvm-gentoo-patchset-15.0.2-r100.tar.xz 15916 BLAKE2B c48afb18c706292d55e028aae2be8f1bc7035ff527ca4f0b32c47d38cbf3022730cc21ca67f921c53d8535fc04c51fdaf63a4810a2c6b519fa33c08116259f30 SHA512 1051a0b2674d2b74c4ac75b734dbaba53507577ce6bd150b0f241b39c9a60b3bd4c420a90dddeee675005633714e5d634684eef22e43fc87e28c1d8c9229e5ee
29 DIST llvm-gentoo-patchset-15.0.3.tar.xz 17480 BLAKE2B d540b044ad0a0505ebf69f732c71fbce281cfc13ee599ba1289238b673a4ba9a4196e80d63fec99db82e55bf6f036fbb9ca0ba489169c2a732f0d1aa2e96ae5a SHA512 f877d5be3e38d64cccc2c8a47287562a42d07f84c7d1b466ae2161aed3f2797bebedaf1118623ae3ded2b47d6abc0ca29ba7a387c07b6097389e715a50cc3816
30 -DIST llvm-gentoo-patchset-15.0.4.tar.xz 16972 BLAKE2B 39cf8a7112d05e50bab8fd54b7559b5bbb4698d9c1adf97f9b4ef93b37d1c342a1e6fd0e85633369f049c9cbf930b50debb2e476c9a348c53943378a0f77d892 SHA512 a99a31dd6db384a3a896d101e148acb028c837bbc9c4b0239606fd6ef0f365312721eb6b209747024c264c2a9dcf81ee7f1cd1a9f372a7ac741a2456d8356e62
31 DIST llvm-gentoo-patchset-15.0.5.tar.xz 15912 BLAKE2B be6da35631073099cdce66746a318080999f7dace4b07470b0a5d0a9ce93f68e51b06d7ddc174b98a47677a0ec30fb17fd9cfcaffd4e6055d8b5f70084c2262b SHA512 708f49129a5ec48f2fa26d50573734e13888e3e10d09ed24f728b687294b31b5f30773ac1e74890e3b73539c057911611dc91791e2cb18cc0a11e8271ac4e990
32 DIST llvm-gentoo-patchset-9999-r4.tar.xz 4120 BLAKE2B 0d45763a36b711e336bf1e36c361c68df5d679837e0b1cb1f9cc26bb52bf769f3c6683f56a01a7ea2bddcbf044a883ea504360a2414ad8dab1f696b8bdd61bfa SHA512 a02b08faf2fa59302161e7ac8f129592fde2e6c6ad5b273c948fa0d68e6a76f14fecc2850cec43f9a9505d483066240eaa3787c77e6bf75bbaa2c4dcacda2d16
33 DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13
34 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6
35 DIST llvm-project-15.0.3.src.tar.xz 112069972 BLAKE2B 3d29bab890467ba87fedcc4e76522f444e63e3dfbe546793f8e67821bcd403bad460ea176254c9e0b72d60ea56b8480e498a7f610477c1108732d178804c26cd SHA512 d378d417f01c56534f301cfe6cb4958d811c04ae22acaacc917e7e5f0380859d40ce19dffb265d046b70fff95dbc2e759f492e4d5af0ade52f21ebaa8da65856
36 DIST llvm-project-15.0.3.src.tar.xz.sig 438 BLAKE2B e7e0614e144eb878f694c12e97cf42ff8476e47cb55e8f259eb2ec52e303463ad753771271512e89baf0137c1382b11cfa028c85324174ebcd054a124000f537 SHA512 41229bebdb0c2df9a5e3a4d6f02d39fac7dc91f21895a659523beab4fa3ef99ff06eff5e4386221369b6e2b6f8fe974d67b7d8496d5911ce484d09ae0db8b916
37 -DIST llvm-project-15.0.4.src.tar.xz 110936424 BLAKE2B a02b76ad161e352b4d3d84baffdada9c6a0e704de7a2c4017df4d4d05a9e9d02113791cd7d91c3edfa1f5bcb7ab95e1772d60f7061514928c6828600f41a8322 SHA512 9d5b664dd77c08130601636f9d6c006b257f369470ce823aa56d06698a9f0edfec42f2c90da934b9ad52c4d7960d9a024ea46dc9640275be6d191b1ba9869459
38 -DIST llvm-project-15.0.4.src.tar.xz.sig 566 BLAKE2B f1a7be65fcce932dc125ae2b498f68a14e68dad0d7a1e031343c52c5dafb7b123e346f3efa50a7693584361abf01efe9401b1b5781dee6b92dc1045e538e9b7b SHA512 35899ffbd13fc44cade54246a423450571cb4b62b8d706864daa3eef2377c48e24ef3113218e39e29de995b7f7fa307f9187552766576c9050fd924beb517f6e
39 DIST llvm-project-15.0.5.src.tar.xz 110931004 BLAKE2B d751e3627ee26e60a1a037a4a6cc574a31c4abe038331b86206348ac3ce93a243add2be3a0bbfc2ec5ec3f3562a5b5efea745cb1943c9c9153bc7b0fcf4de22e SHA512 cf2a89ebb6bc9d7e3f1fd09531c84ac9927cdbe5ee13a6fcb8ce4d08e5a9d6d480ad982f62126b9c757beafa283b34f2ba1fbc56223c641e70da2be4627f59a6
40 DIST llvm-project-15.0.5.src.tar.xz.sig 566 BLAKE2B a6e7204abc912045346a36f2b349e0829a4d5b9efcb230fb0c97caa38d5159ca17ffb47ce0485cbab276a4938ff3a5c05ef9f8b0b75f4c2028d870ee33023431 SHA512 312bc09b54408a9265f8102241089b0f674be0832dd5cb1998ff13dbccbe19324d7060ba2680457118dee96a1ff390b16282677ad825d7230008014ecebe47d5
41 DIST llvm-project-7b91798a5d3a8432b296778da4efe169012fb7b4.tar.gz 170989337 BLAKE2B 1ab79554a05f8d7a74c0b4bab319c30375475d3fd089764733744fde55c65eb38967cdb19e5b0211a1543549c2bfc3c0f3d43facb7e041f51988e8a65e4448f3 SHA512 4c4d3a748b967cbc75372d0db87ac48d32271a54047ddeeb028d565fa6b7004b2ab3abd82d8ff4621e50c9410fce28c3044550cc94aaf0f6e4f672498f47aba8
42
43 diff --git a/sys-devel/clang/clang-15.0.4.ebuild b/sys-devel/clang/clang-15.0.4.ebuild
44 deleted file mode 100644
45 index 45ec3a2786f8..000000000000
46 --- a/sys-devel/clang/clang-15.0.4.ebuild
47 +++ /dev/null
48 @@ -1,460 +0,0 @@
49 -# Copyright 1999-2022 Gentoo Authors
50 -# Distributed under the terms of the GNU General Public License v2
51 -
52 -EAPI=8
53 -
54 -PYTHON_COMPAT=( python3_{8..11} )
55 -inherit cmake llvm llvm.org multilib multilib-minimal \
56 - prefix python-single-r1 toolchain-funcs
57 -
58 -DESCRIPTION="C language family frontend for LLVM"
59 -HOMEPAGE="https://llvm.org/"
60 -
61 -# MSVCSetupApi.h: MIT
62 -# sorttable.js: MIT
63 -
64 -LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA MIT"
65 -SLOT="${LLVM_MAJOR}/${LLVM_SOABI}"
66 -KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x64-macos"
67 -IUSE="debug doc +extra +pie +static-analyzer test xml"
68 -REQUIRED_USE="${PYTHON_REQUIRED_USE}"
69 -RESTRICT="!test? ( test )"
70 -
71 -DEPEND="
72 - ~sys-devel/llvm-${PV}:${LLVM_MAJOR}=[debug=,${MULTILIB_USEDEP}]
73 - static-analyzer? ( dev-lang/perl:* )
74 - xml? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
75 -"
76 -
77 -RDEPEND="
78 - ${PYTHON_DEPS}
79 - ${DEPEND}
80 - >=sys-devel/clang-common-${PV}
81 -"
82 -BDEPEND="
83 - ${PYTHON_DEPS}
84 - >=dev-util/cmake-3.16
85 - doc? ( $(python_gen_cond_dep '
86 - dev-python/recommonmark[${PYTHON_USEDEP}]
87 - dev-python/sphinx[${PYTHON_USEDEP}]
88 - ') )
89 - xml? ( virtual/pkgconfig )
90 -"
91 -PDEPEND="
92 - sys-devel/clang-toolchain-symlinks:${LLVM_MAJOR}
93 - ~sys-devel/clang-runtime-${PV}
94 -"
95 -
96 -LLVM_COMPONENTS=(
97 - clang clang-tools-extra cmake
98 - llvm/lib/Transforms/Hello
99 -)
100 -LLVM_MANPAGES=1
101 -LLVM_TEST_COMPONENTS=(
102 - llvm/lib/Testing/Support
103 - llvm/utils/{lit,llvm-lit,unittest}
104 - llvm/utils/{UpdateTestChecks,update_cc_test_checks.py}
105 -)
106 -LLVM_PATCHSET=${PV/_/-}
107 -LLVM_USE_TARGETS=llvm
108 -llvm.org_set_globals
109 -
110 -# Multilib notes:
111 -# 1. ABI_* flags control ABIs libclang* is built for only.
112 -# 2. clang is always capable of compiling code for all ABIs for enabled
113 -# target. However, you will need appropriate crt* files (installed
114 -# e.g. by sys-devel/gcc and sys-libs/glibc).
115 -# 3. ${CHOST}-clang wrappers are always installed for all ABIs included
116 -# in the current profile (i.e. alike supported by sys-devel/gcc).
117 -#
118 -# Therefore: use sys-devel/clang[${MULTILIB_USEDEP}] only if you need
119 -# multilib clang* libraries (not runtime, not wrappers).
120 -
121 -pkg_setup() {
122 - LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup
123 - python-single-r1_pkg_setup
124 -}
125 -
126 -src_prepare() {
127 - # create extra parent dir for relative CLANG_RESOURCE_DIR access
128 - mkdir -p x/y || die
129 - BUILD_DIR=${WORKDIR}/x/y/clang
130 -
131 - llvm.org_src_prepare
132 -
133 - # add Gentoo Portage Prefix for Darwin (see prefix-dirs.patch)
134 - eprefixify \
135 - lib/Lex/InitHeaderSearch.cpp \
136 - lib/Driver/ToolChains/Darwin.cpp || die
137 -}
138 -
139 -check_distribution_components() {
140 - if [[ ${CMAKE_MAKEFILE_GENERATOR} == ninja ]]; then
141 - local all_targets=() my_targets=() l
142 - cd "${BUILD_DIR}" || die
143 -
144 - while read -r l; do
145 - if [[ ${l} == install-*-stripped:* ]]; then
146 - l=${l#install-}
147 - l=${l%%-stripped*}
148 -
149 - case ${l} in
150 - # meta-targets
151 - clang-libraries|distribution)
152 - continue
153 - ;;
154 - # tools
155 - clang|clangd|clang-*)
156 - ;;
157 - # static libraries
158 - clang*|findAllSymbols)
159 - continue
160 - ;;
161 - # conditional to USE=doc
162 - docs-clang-html|docs-clang-tools-html)
163 - use doc || continue
164 - ;;
165 - esac
166 -
167 - all_targets+=( "${l}" )
168 - fi
169 - done < <(${NINJA} -t targets all)
170 -
171 - while read -r l; do
172 - my_targets+=( "${l}" )
173 - done < <(get_distribution_components $"\n")
174 -
175 - local add=() remove=()
176 - for l in "${all_targets[@]}"; do
177 - if ! has "${l}" "${my_targets[@]}"; then
178 - add+=( "${l}" )
179 - fi
180 - done
181 - for l in "${my_targets[@]}"; do
182 - if ! has "${l}" "${all_targets[@]}"; then
183 - remove+=( "${l}" )
184 - fi
185 - done
186 -
187 - if [[ ${#add[@]} -gt 0 || ${#remove[@]} -gt 0 ]]; then
188 - eqawarn "get_distribution_components() is outdated!"
189 - eqawarn " Add: ${add[*]}"
190 - eqawarn "Remove: ${remove[*]}"
191 - fi
192 - cd - >/dev/null || die
193 - fi
194 -}
195 -
196 -get_distribution_components() {
197 - local sep=${1-;}
198 -
199 - local out=(
200 - # common stuff
201 - clang-cmake-exports
202 - clang-headers
203 - clang-resource-headers
204 - libclang-headers
205 -
206 - aarch64-resource-headers
207 - arm-common-resource-headers
208 - arm-resource-headers
209 - core-resource-headers
210 - cuda-resource-headers
211 - hexagon-resource-headers
212 - hip-resource-headers
213 - hlsl-resource-headers
214 - mips-resource-headers
215 - opencl-resource-headers
216 - openmp-resource-headers
217 - ppc-htm-resource-headers
218 - ppc-resource-headers
219 - riscv-resource-headers
220 - systemz-resource-headers
221 - utility-resource-headers
222 - ve-resource-headers
223 - webassembly-resource-headers
224 - windows-resource-headers
225 - x86-resource-headers
226 -
227 - # libs
228 - clang-cpp
229 - libclang
230 - )
231 -
232 - if multilib_is_native_abi; then
233 - out+=(
234 - # common stuff
235 - bash-autocomplete
236 - libclang-python-bindings
237 -
238 - # tools
239 - c-index-test
240 - clang
241 - clang-format
242 - clang-offload-bundler
243 - clang-offload-packager
244 - clang-offload-wrapper
245 - clang-refactor
246 - clang-repl
247 - clang-rename
248 - clang-scan-deps
249 - diagtool
250 - hmaptool
251 - )
252 -
253 - if use extra; then
254 - out+=(
255 - # extra tools
256 - clang-apply-replacements
257 - clang-change-namespace
258 - clang-doc
259 - clang-include-fixer
260 - clang-move
261 - clang-pseudo
262 - clang-query
263 - clang-reorder-fields
264 - clang-tidy
265 - clang-tidy-headers
266 - clangd
267 - find-all-symbols
268 - modularize
269 - pp-trace
270 - )
271 - fi
272 -
273 - if llvm_are_manpages_built; then
274 - out+=( docs-clang-man )
275 - use extra && out+=( docs-clang-tools-man )
276 - fi
277 -
278 - if use doc; then
279 - out+=( docs-clang-html )
280 - use extra && out+=( docs-clang-tools-html )
281 - fi
282 -
283 - use static-analyzer && out+=(
284 - clang-check
285 - clang-extdef-mapping
286 - scan-build
287 - scan-build-py
288 - scan-view
289 - )
290 - fi
291 -
292 - printf "%s${sep}" "${out[@]}"
293 -}
294 -
295 -multilib_src_configure() {
296 - local mycmakeargs=(
297 - -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}"
298 - -DCMAKE_INSTALL_MANDIR="${EPREFIX}/usr/lib/llvm/${LLVM_MAJOR}/share/man"
299 - -DCLANG_CONFIG_FILE_SYSTEM_DIR="${EPREFIX}/etc/clang"
300 - # relative to bindir
301 - -DCLANG_RESOURCE_DIR="../../../../lib/clang/${LLVM_VERSION}"
302 -
303 - -DBUILD_SHARED_LIBS=OFF
304 - -DCLANG_LINK_CLANG_DYLIB=ON
305 - -DLLVM_DISTRIBUTION_COMPONENTS=$(get_distribution_components)
306 -
307 - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS// /;}"
308 - -DLLVM_BUILD_TESTS=$(usex test)
309 -
310 - # these are not propagated reliably, so redefine them
311 - -DLLVM_ENABLE_EH=ON
312 - -DLLVM_ENABLE_RTTI=ON
313 -
314 - -DCMAKE_DISABLE_FIND_PACKAGE_LibXml2=$(usex !xml)
315 - # libgomp support fails to find headers without explicit -I
316 - # furthermore, it provides only syntax checking
317 - -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp
318 -
319 - # disable using CUDA to autodetect GPU, just build for all
320 - -DCMAKE_DISABLE_FIND_PACKAGE_CUDA=ON
321 -
322 - -DCLANG_DEFAULT_PIE_ON_LINUX=$(usex pie)
323 -
324 - -DCLANG_ENABLE_ARCMT=$(usex static-analyzer)
325 - -DCLANG_ENABLE_STATIC_ANALYZER=$(usex static-analyzer)
326 -
327 - -DPython3_EXECUTABLE="${PYTHON}"
328 - )
329 - use test && mycmakeargs+=(
330 - -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm"
331 - -DLLVM_EXTERNAL_LIT="${BUILD_DIR}/bin/llvm-lit"
332 - -DLLVM_LIT_ARGS="$(get_lit_flags)"
333 - )
334 -
335 - if multilib_is_native_abi; then
336 - local build_docs=OFF
337 - if llvm_are_manpages_built; then
338 - build_docs=ON
339 - mycmakeargs+=(
340 - -DLLVM_BUILD_DOCS=ON
341 - -DLLVM_ENABLE_SPHINX=ON
342 - -DCLANG_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/html"
343 - -DSPHINX_WARNINGS_AS_ERRORS=OFF
344 - )
345 - if use extra; then
346 - mycmakeargs+=(
347 - -DCLANG-TOOLS_INSTALL_SPHINX_HTML_DIR="${EPREFIX}/usr/share/doc/${PF}/tools-extra"
348 - )
349 - fi
350 - fi
351 - mycmakeargs+=(
352 - -DCLANG_INCLUDE_DOCS=${build_docs}
353 - )
354 - fi
355 - if multilib_native_use extra; then
356 - mycmakeargs+=(
357 - -DLLVM_EXTERNAL_CLANG_TOOLS_EXTRA_SOURCE_DIR="${WORKDIR}"/clang-tools-extra
358 - -DCLANG_TOOLS_EXTRA_INCLUDE_DOCS=${build_docs}
359 - )
360 - else
361 - mycmakeargs+=(
362 - -DLLVM_TOOL_CLANG_TOOLS_EXTRA_BUILD=OFF
363 - )
364 - fi
365 -
366 - if [[ -n ${EPREFIX} ]]; then
367 - mycmakeargs+=(
368 - -DGCC_INSTALL_PREFIX="${EPREFIX}/usr"
369 - )
370 - fi
371 -
372 - if tc-is-cross-compiler; then
373 - [[ -x "/usr/bin/clang-tblgen" ]] \
374 - || die "/usr/bin/clang-tblgen not found or usable"
375 - mycmakeargs+=(
376 - -DCMAKE_CROSSCOMPILING=ON
377 - -DCLANG_TABLEGEN=/usr/bin/clang-tblgen
378 - )
379 - fi
380 -
381 - # LLVM can have very high memory consumption while linking,
382 - # exhausting the limit on 32-bit linker executable
383 - use x86 && local -x LDFLAGS="${LDFLAGS} -Wl,--no-keep-memory"
384 -
385 - # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844
386 - use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG"
387 - cmake_src_configure
388 -
389 - multilib_is_native_abi && check_distribution_components
390 -}
391 -
392 -multilib_src_compile() {
393 - cmake_build distribution
394 -
395 - # provide a symlink for tests
396 - if [[ ! -L ${WORKDIR}/lib/clang ]]; then
397 - mkdir -p "${WORKDIR}"/lib || die
398 - ln -s "${BUILD_DIR}/$(get_libdir)/clang" "${WORKDIR}"/lib/clang || die
399 - fi
400 -}
401 -
402 -multilib_src_test() {
403 - # respect TMPDIR!
404 - local -x LIT_PRESERVES_TMP=1
405 - local test_targets=( check-clang )
406 - if multilib_native_use extra; then
407 - test_targets+=(
408 - check-clang-tools
409 - check-clangd
410 - )
411 - fi
412 - cmake_build "${test_targets[@]}"
413 -}
414 -
415 -src_install() {
416 - MULTILIB_WRAPPED_HEADERS=(
417 - /usr/include/clang/Config/config.h
418 - )
419 -
420 - multilib-minimal_src_install
421 -
422 - # Move runtime headers to /usr/lib/clang, where they belong
423 - mv "${ED}"/usr/include/clangrt "${ED}"/usr/lib/clang || die
424 - # move (remaining) wrapped headers back
425 - if use extra; then
426 - mv "${T}"/clang-tidy "${ED}"/usr/include/ || die
427 - fi
428 - mv "${ED}"/usr/include "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include || die
429 -
430 - # Apply CHOST and version suffix to clang tools
431 - local clang_tools=( clang clang++ clang-cl clang-cpp )
432 - local abi i
433 -
434 - # cmake gives us:
435 - # - clang-X
436 - # - clang -> clang-X
437 - # - clang++, clang-cl, clang-cpp -> clang
438 - # we want to have:
439 - # - clang-X
440 - # - clang++-X, clang-cl-X, clang-cpp-X -> clang-X
441 - # - clang, clang++, clang-cl, clang-cpp -> clang*-X
442 - # also in CHOST variant
443 - for i in "${clang_tools[@]:1}"; do
444 - rm "${ED}/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}" || die
445 - dosym "clang-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}-${LLVM_MAJOR}"
446 - dosym "${i}-${LLVM_MAJOR}" "/usr/lib/llvm/${LLVM_MAJOR}/bin/${i}"
447 - done
448 -
449 - # now create target symlinks for all supported ABIs
450 - for abi in $(get_all_abis); do
451 - local abi_chost=$(get_abi_CHOST "${abi}")
452 - for i in "${clang_tools[@]}"; do
453 - dosym "${i}-${LLVM_MAJOR}" \
454 - "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}-${LLVM_MAJOR}"
455 - dosym "${abi_chost}-${i}-${LLVM_MAJOR}" \
456 - "/usr/lib/llvm/${LLVM_MAJOR}/bin/${abi_chost}-${i}"
457 - done
458 - done
459 -}
460 -
461 -multilib_src_install() {
462 - DESTDIR=${D} cmake_build install-distribution
463 -
464 - # move headers to /usr/include for wrapping & ABI mismatch checks
465 - # (also drop the version suffix from runtime headers)
466 - rm -rf "${ED}"/usr/include || die
467 - mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/include "${ED}"/usr/include || die
468 - mv "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)/clang "${ED}"/usr/include/clangrt || die
469 - if multilib_native_use extra; then
470 - # don't wrap clang-tidy headers, the list is too long
471 - # (they're fine for non-native ABI but enabling the targets is problematic)
472 - mv "${ED}"/usr/include/clang-tidy "${T}/" || die
473 - fi
474 -}
475 -
476 -multilib_src_install_all() {
477 - python_fix_shebang "${ED}"
478 - if use static-analyzer; then
479 - python_optimize "${ED}"/usr/lib/llvm/${LLVM_MAJOR}/share/scan-view
480 - fi
481 -
482 - docompress "/usr/lib/llvm/${LLVM_MAJOR}/share/man"
483 - llvm_install_manpages
484 - # match 'html' non-compression
485 - use doc && docompress -x "/usr/share/doc/${PF}/tools-extra"
486 - # +x for some reason; TODO: investigate
487 - use static-analyzer && fperms a-x "/usr/lib/llvm/${LLVM_MAJOR}/share/man/man1/scan-build.1"
488 -}
489 -
490 -pkg_postinst() {
491 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
492 - eselect compiler-shadow update all
493 - fi
494 -
495 - elog "You can find additional utility scripts in:"
496 - elog " ${EROOT}/usr/lib/llvm/${LLVM_MAJOR}/share/clang"
497 - if use extra; then
498 - elog "Some of them are vim integration scripts (with instructions inside)."
499 - elog "The run-clang-tidy.py script requires the following additional package:"
500 - elog " dev-python/pyyaml"
501 - fi
502 -}
503 -
504 -pkg_postrm() {
505 - if [[ -z ${ROOT} && -f ${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
506 - eselect compiler-shadow clean all
507 - fi
508 -}