Contents of /trunk/extras/clang/clang-15.0.7-r1.smage2
Parent Directory | Revision Log
Revision 33559 -
(show annotations)
(download)
Fri Aug 4 12:30:38 2023 UTC (10 months ago) by niro
File size: 4851 byte(s)
Fri Aug 4 12:30:38 2023 UTC (10 months ago) by niro
File size: 4851 byte(s)
-ver bump to 15.0.7-r1
1 | # $Id$ |
2 | |
3 | PNAME="clang" |
4 | PVER="15.0.7" |
5 | PBUILD="r1" |
6 | |
7 | # gcc version which llvm was compiled with |
8 | GCC_VER="13.1.0" |
9 | |
10 | PCAT="sys-dev" |
11 | |
12 | DESCRIPTION="C language family frontend for LLVM." |
13 | HOMEPAGE="http://llvm.org/" |
14 | |
15 | DEPEND=">= dev-libs/libxml2-2.11 |
16 | == sys-dev/gcc-${GCC_VER} |
17 | == sys-libs/compiler-rt-${PVER} |
18 | == sys-libs/llvm-libs-${PVER}" |
19 | |
20 | SDEPEND="== sys-dev/llvm-${PVER} |
21 | >= virtual/pkgconfig |
22 | >= dev-lang/python3-3.11 |
23 | >= virtual/sed" |
24 | |
25 | SRCFILE="clang-${PVER}.src.tar.xz" |
26 | SRCDIR="${BUILDDIR}/clang-${PVER}.src" |
27 | |
28 | LLVM_SRCFILE="llvm-${PVER}.src.tar.xz" |
29 | LLVM_SRCDIR="${BUILDDIR}/llvm-${PVER}.src" |
30 | |
31 | CLANG_EXTRA_SRCFILE="clang-tools-extra-${PVER}.src.tar.xz" |
32 | CLANG_EXTRA_SRCDIR="${BUILDDIR}/clang-tools-extra-${PVER}.src" |
33 | |
34 | CMAKE_SRCFILE="cmake-${PVER}.src.tar.xz" |
35 | CMAKE_SRCDIR="${BUILDDIR}/cmake-${PVER}.src" |
36 | |
37 | MANPAGES_SRCFILE="llvm-${PVER}-manpages.tar.bz2" |
38 | MANPAGES_SRCDIR="${BUILDDIR}/llvm-${PVER}-manpages" |
39 | |
40 | sminclude multilib python3 mtools meson cmake |
41 | msetfeature "!check static" |
42 | |
43 | SRC_URI=( |
44 | https://github.com/llvm/llvm-project/releases/download/llvmorg-${PVER}/${SRCFILE} |
45 | https://github.com/llvm/llvm-project/releases/download/llvmorg-${PVER}/${LLVM_SRCFILE} |
46 | https://github.com/llvm/llvm-project/releases/download/llvmorg-${PVER}/${CLANG_EXTRA_SRCFILE} |
47 | https://github.com/llvm/llvm-project/releases/download/llvmorg-${PVER}/${CMAKE_SRCFILE} |
48 | mirror://llvm/${SRCFILE} |
49 | mirror://llvm/${LLVM_SRCFILE} |
50 | mirror://llvm/${CLANG_EXTRA_SRCFILE} |
51 | mirror://llvm/${CMAKE_SRCFILE} |
52 | mirror://llvm/${MANPAGES_SRCFILE} |
53 | mirror://llvm/clang-${PVER}-enable_default_ssp-1.patch |
54 | mirror://llvm/clang-${PVER}-linker-wrapper-tool.patch |
55 | mirror://llvm/clang-${PVER}-structured-bindings-r1-v2.patch |
56 | mirror://llvm/clang-${PVER}-bitfield-value-capture.patch |
57 | ) |
58 | |
59 | UP2DATE="updatecmd https://github.com/${PNAME}/llvm-project/releases | grep llvmorg- | highesttarball gz" |
60 | |
61 | # pkgs which require a rebuild: mesa |
62 | |
63 | src_prepare() |
64 | { |
65 | munpack ${SRCFILE} || die |
66 | SRCDIR="${CLANG_EXTRA_SRCDIR}" munpack ${CLANG_EXTRA_SRCFILE} || die |
67 | |
68 | # move all sources into the llvm src tree |
69 | all-abis mv ${CLANG_EXTRA_SRCDIR}-$(mabi) ${SRCDIR}-$(mabi)/tools/extra || die |
70 | |
71 | # apply patches |
72 | # enable ssp by default |
73 | mpatch -Np2 clang-${PVER}-enable_default_ssp-1.patch || die |
74 | # upstream: |
75 | # https://reviews.llvm.org/D145862 |
76 | mpatch -lNp2 clang-${PVER}-linker-wrapper-tool.patch || die |
77 | # https://reviews.llvm.org/D122768 (needed for Chromium 113) |
78 | mpatch -Np2 clang-${PVER}-structured-bindings-r1-v2.patch || die |
79 | # https://reviews.llvm.org/D131202 (regression caused by the above) |
80 | mpatch clang-${PVER}-bitfield-value-capture.patch |
81 | |
82 | # cmake addons and thirdparty modules are expected outside the llvm srcdir without any versions |
83 | oldmunpack ${CMAKE_SRCFILE} || die |
84 | mv -v ${CMAKE_SRCDIR} ${BUILDDIR}/cmake || die |
85 | |
86 | # some header references are required from llvm to build clang |
87 | oldmunpack ${LLVM_SRCFILE} || die |
88 | |
89 | # pre-generated man-pages |
90 | oldmunpack ${MANPAGES_SRCFILE} || die |
91 | |
92 | # attempt to convert script to python 3 |
93 | all-abis 2to3 -wn --no-diffs tools/extra/clang-include-fixer/find-all-symbols/tool/run-find-all-symbols.py || die |
94 | } |
95 | |
96 | src_compile() |
97 | { |
98 | # honor outside tree builds |
99 | cmake_setup_builddir || die |
100 | |
101 | cmake_configure \ |
102 | -G Ninja \ |
103 | -DCMAKE_SKIP_RPATH=ON \ |
104 | -DLLVM_LINK_LLVM_DYLIB=ON \ |
105 | -DCLANG_LINK_CLANG_DYLIB=ON \ |
106 | -DLLVM_ENABLE_RTTI=ON \ |
107 | -DLLVM_BUILD_TESTS=ON \ |
108 | -DLLVM_BUILD_DOCS=OFF \ |
109 | -DLLVM_ENABLE_SPHINX=OFF \ |
110 | -DLLVM_ENABLE_DOXYGEN=OFF \ |
111 | -DSPHINX_WARNINGS_AS_ERRORS=OFF \ |
112 | -DCLANG_DEFAULT_PIE_ON_LINUX=ON \ |
113 | -DENABLE_LINKER_BUILD_ID=ON \ |
114 | -DLLVM_EXTERNAL_LIT=/usr/bin/lit \ |
115 | -DLLVM_MAIN_SRC_DIR="${LLVM_SRCDIR}" \ |
116 | '$([[ $(mlibdir) != lib ]] && echo "-DLLVM_LIBDIR_SUFFIX=32")' \ |
117 | -DLLVM_HOST_TRIPLE=${CHOST} \ |
118 | || die |
119 | |
120 | all-abis SRCDIR=${BUILDDIR}/build mninja || die |
121 | } |
122 | |
123 | src_check() |
124 | { |
125 | all-abis SRCDIR=${BUILDDIR}/build mninja check-clang || die |
126 | all-abis SRCDIR=${BUILDDIR}/build mninja check-clang-tools || die |
127 | } |
128 | |
129 | src_install() |
130 | { |
131 | SRCDIR=${BUILDDIR}/build DESTDIR=${BINDIR} mninja install || die |
132 | |
133 | # install pre-generated man-pages |
134 | minstallman ${MANPAGES_SRCDIR}/clang/*.1 || die |
135 | |
136 | # install python bindings (non multilib) |
137 | minstalldir $(mget-python-libdir) || die |
138 | all-abis mcopy -r bindings/python/clang $(mget-python-libdir)/ || die |
139 | mv -v ${BINDIR}/usr/$(mlibdir)/libear ${BINDIR}/$(mget-python-libdir)/ || die |
140 | mv -v ${BINDIR}/usr/$(mlibdir)/libscanbuild ${BINDIR}/$(mget-python-libdir)/ || die |
141 | # compile all python scripts |
142 | ${MAGE_PYTHON3_EXEC} -m compileall ${BINDIR} || die |
143 | ${MAGE_PYTHON3_EXEC} -O -m compileall ${BINDIR} || die |
144 | |
145 | # fix libexec |
146 | mv -v ${BINDIR}/usr/libexec/* ${BINDIR}/usr/$(mlibdir)/clang/ || die |
147 | rmdir -v ${BINDIR}/usr/libexec || die |
148 | sed -i "s:libexec:$(mlibdir)/clang:g" \ |
149 | ${BINDIR}/usr/bin/scan-build \ |
150 | ${BINDIR}/$(mget-python-libdir)/libscanbuild/analyze.py \ |
151 | || die |
152 | |
153 | minstalldocs tools/clang/LICENSE.TXT || die |
154 | } |