# Template file for 'libcxx' pkgname=libcxx version=6.0.1 revision=1 wrksrc="${pkgname}-${version}.src" build_style=cmake hostmakedepends="clang llvm python" makedepends="libcxxabi-devel llvm llvm-libunwind-devel" make_build_args="VERBOSE=1" short_desc="New implementation of the C++ standard library, targeting C++11" maintainer="Juan RP " homepage="http://libcxx.llvm.org" license="NCSA, MIT" distfiles="http://www.llvm.org/releases/${version}/${pkgname}-${version}.src.tar.xz" checksum=7654fbc810a03860e6f01a54c2297a0b9efb04c0b9aa0409251d9bdb3726fc67 case "$XBPS_TARGET_MACHINE" in arm*) _broken="libcxxabi doesn't build on arm." ;; *) configure_args+=" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DLIBCXX_CXX_ABI_LIBRARY_PATH=${XBPS_CROSS_BASE}/usr/lib -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ " LDFLAGS="-Wl,--no-as-needed -lunwind -Wl,--as-needed" esac case "$XBPS_TARGET_MACHINE" in *-musl) configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES" esac post_extract() { case "$XBPS_TARGET_MACHINE" in *-musl) patch -Np1 <${FILESDIR}/libcxx-0001-musl-hacks.patch sed -i 's/!defined(_GCC_MAX_ALIGN_T)/& \&\& !defined(__DEFINED_max_align_t)/' include/stddef.h ;; esac } pre_configure() { export CC="clang" export CXX="clang++" if [ "$CROSS_BUILD" ]; then for _gccdir in /usr/lib/gcc/$XBPS_CROSS_TRIPLET/*.*.*; do CFLAGS+=" --target=$XBPS_CROSS_TRIPLET --sysroot=/usr/$XBPS_CROSS_TRIPLET -B$_gccdir" CXXFLAGS+=" --target=$XBPS_CROSS_TRIPLET --sysroot=/usr/$XBPS_CROSS_TRIPLET -B$_gccdir" LDFLAGS+=" -L$_gccdir" done fi } libcxx-devel_package() { short_desc+=" - development files" depends="${sourcepkg}>=${version}_${revision}" pkg_install() { vmove usr/include vmove "usr/lib/*.so" vmove "usr/lib/*.a" } }