# Template file for 'libcxxabi' pkgname=libcxxabi version=7.0.1 revision=1 wrksrc="${pkgname}-${version}.src" build_style=cmake configure_args="-DLIBCXXABI_LIBCXX_INCLUDES=../libcxx/include -DLIBCXXABI_USE_LLVM_UNWINDER=1 -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}" make_build_args="VERBOSE=1" hostmakedepends="llvm7" makedepends="llvm7 llvm-libunwind-devel" short_desc="Low-level support for libc++ standard library" maintainer="Juan RP " license="NCSA, MIT" homepage="https://libcxxabi.llvm.org" distfiles="https://www.llvm.org/releases/${version}/${pkgname}-${version}.src.tar.xz https://www.llvm.org/releases/${version}/libcxx-${version}.src.tar.xz" checksum="8168903a157ca7ab8423d3b974eaa497230b1564ceb57260be2bd14412e8ded8 020002618b319dc2a8ba1f2cba88b8cc6a209005ed8ad29f9de0c562c6ebb9f1" # Aarch64 fails to build with gcc case "$XBPS_TARGET_MACHINE" in armv[67]l) broken="invalid operands of types 'char [8]' and 'const uint64_t' to binary 'operator&'" ;; aarch64*) hostmakedepends+=" clang" configure_args+=" -DLIBCXXABI_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET}" pre_configure() { export CC="clang" export CXX="clang++" CFLAGS+=" --target=${XBPS_CROSS_TRIPLET} --sysroot=${XBPS_CROSS_BASE}" CXXFLAGS+=" --target=${XBPS_CROSS_TRIPLET} --sysroot=${XBPS_CROSS_BASE} -I$(ls -d ${XBPS_CROSS_BASE}/usr/include/c++/*/${XBPS_CROSS_TRIPLET} | head -n1)" } ;; esac post_extract() { # Break dependency cycle, we just need the headers here mv ../libcxx-${version}.src libcxx # For musl sed -i 's/!defined(_GCC_MAX_ALIGN_T)/& \&\& !defined(__DEFINED_max_align_t)/' libcxx/include/stddef.h } post_install() { vmkdir usr/include vcopy include/* usr/include vlicense LICENSE.TXT } libcxxabi-devel_package() { short_desc+=" - development files" depends="${sourcepkg}>=${version}_${revision}" pkg_install() { vmove usr/include vmove "usr/lib/*.a" vmove "usr/lib/*.so" } }