Skip to content

Commit

Permalink
libc++: update to 20.1.0
Browse files Browse the repository at this point in the history
Use llvm-project tarball because libc++ now requires libc source code but It's not packaged as a tarball.
see: llvm/llvm-project#127404
  • Loading branch information
MehdiChinoune committed Mar 5, 2025
1 parent 6fcd75d commit 9b15547
Showing 1 changed file with 14 additions and 35 deletions.
49 changes: 14 additions & 35 deletions mingw-w64-libc++/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@ _realname=libc++
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-libunwind")
_version=19.1.7
_rc=""
_tag=llvmorg-${_version}${_rc}
pkgver=${_version}${_rc/-/}
_pkgver=20.1.0
pkgver=${_pkgver/-/}
pkgrel=1
arch=(any)
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64')
Expand All @@ -31,38 +29,18 @@ if [[ ${MINGW_PACKAGE_PREFIX} != *-clang-* ]]; then
# GNU's strip breaks the library #11553
options=('!strip')
fi
_url=https://github.com/llvm/llvm-project/releases/download/${_tag}
source=("${_url}/libcxx-${pkgver}.src.tar.xz"{,.sig}
"${_url}/libcxxabi-${pkgver}.src.tar.xz"{,.sig}
"${_url}/libunwind-${pkgver}.src.tar.xz"{,.sig}
"${_url}/runtimes-${pkgver}.src.tar.xz"{,.sig}
"${_url}/llvm-${pkgver}.src.tar.xz"{,.sig}
"${_url}/cmake-${pkgver}.src.tar.xz"{,.sig})
sha256sums=('b736109650ffc750dbdc506483347b3713ded9d0300f48432b820ad66b6a9052'
'SKIP'
'4d25125109e3febe1393e9e30f93153333d82b48ce7bed637bd2daf52bf40172'
'SKIP'
'10e650f436bc416674f01b5e01177405886f4d0f0b2568c6808044eacad52ea0'
'SKIP'
'404c54c2df45a307331eba1372917ec480addf3b77ca9943ed4d7ea445efb08f'
'SKIP'
'96f833c6ad99a3e8e1d9aca5f439b8fd2c7efdcf83b664e0af1c0712c5315910'
'SKIP'
'11c5a28f90053b0c43d0dec3d0ad579347fc277199c005206b963c19aae514e3'
_url=https://github.com/llvm/llvm-project/releases/download/llvmorg-${_pkgver}
source=("${_url}/llvm-project-${_pkgver}.src.tar.xz"{,.sig})
sha256sums=('4579051e3c255fb4bb795d54324f5a7f3ef79bd9181e44293d7ee9a7f62aad9a'
'SKIP')
validpgpkeys=('B6C8F98282B944E3B0D5C2530FC3042E345AD05D' # Hans Wennborg, Google.
'474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard
'D574BD5D1D0E98895E3BF90044F2485E45D59042') # Tobias Hieta
noextract=(libcxx-${pkgver}.src.tar.xz)
noextract=(llvm-project-${_pkgver}.src.tar.xz)

prepare() {
plain "Extracting libcxx-${pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)"
cd "${srcdir}"
tar -xJf "${srcdir}"/libcxx-${pkgver}.src.tar.xz -C "${srcdir}" || true
# Rename Directories
for pkg in cmake libcxx libcxxabi libunwind llvm runtimes; do
mv ${pkg}-$pkgver.src ${pkg}
done
plain "Extracting llvm-project-${_pkgver}.src.tar.xz due to symlink(s) without pre-existing target(s)"
tar -xJf "${srcdir}"/llvm-project-${_pkgver}.src.tar.xz -C "${srcdir}" || true
}

build() {
Expand Down Expand Up @@ -122,11 +100,12 @@ build() {
-DLIBUNWIND_ENABLE_FRAME_APIS=ON \
-DLIBUNWIND_ENABLE_SHARED=ON \
-DLIBUNWIND_ENABLE_STATIC=ON \
-DENABLE_TIME_ZONE_DATABASE_DEFAULT=ON \
-DLLVM_INCLUDE_TESTS=OFF \
"${_extra_config[@]}" \
-DPython3_EXECUTABLE=${MINGW_PREFIX}/bin/python.exe \
-Wno-dev \
../runtimes
../llvm-project-${_pkgver}.src/runtimes

${MINGW_PREFIX}/bin/cmake --build . -- unwind cxxabi cxx cxx_experimental
}
Expand All @@ -138,15 +117,14 @@ package_libc++() {
$( (( _clangprefix )) && echo \
"${MINGW_PACKAGE_PREFIX}-gcc-libs" \
|| true))
conflicts=("${MINGW_PACKAGE_PREFIX}-libc++abi")
replaces=("${MINGW_PACKAGE_PREFIX}-libc++abi")
depends=($( (( _clangprefix )) && echo \
"${MINGW_PACKAGE_PREFIX}-libunwind" \
|| echo "${MINGW_PACKAGE_PREFIX}-gcc-libs"))

DESTDIR="${pkgdir}" ${MINGW_PREFIX}/bin/cmake --build "${srcdir}/build-${MSYSTEM}" --target install-cxx install-cxxabi

install -Dm644 "${srcdir}"/libcxx/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/libc++/LICENSE
install -Dm644 "${srcdir}"/llvm-project-${_pkgver}.src/libcxx/LICENSE.TXT \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/libc++/LICENSE
}

package_libunwind() {
Expand All @@ -156,7 +134,8 @@ package_libunwind() {

DESTDIR="${pkgdir}" cmake --build "${srcdir}/build-${MSYSTEM}" --target install-unwind

install -Dm644 "${srcdir}"/libunwind/LICENSE.TXT "${pkgdir}"${MINGW_PREFIX}/share/licenses/libunwind/LICENSE
install -Dm644 "${srcdir}"/llvm-project-${_pkgver}.src/libunwind/LICENSE.TXT \
"${pkgdir}"${MINGW_PREFIX}/share/licenses/libunwind/LICENSE
}

# template start; name=mingw-w64-splitpkg-wrappers; version=1.0;
Expand Down

0 comments on commit 9b15547

Please sign in to comment.