Magellan Linux

Contents of /trunk/extras/clang/clang-15.0.7-r1.smage2

Parent Directory Parent Directory | Revision Log 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)
-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 }