1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
8 CMAKE_MIN_VERSION=3.4.3
9 PYTHON_COMPAT=( python2_7 )
11 inherit cmake-multilib python-any-r1
13 DESCRIPTION="Low level support for a standard C++ library"
14 HOMEPAGE="http://libcxxabi.llvm.org/"
15 # also needs libcxx sources for headers
16 SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz
17 http://llvm.org/releases/${PV}/${P/abi/}.src.tar.xz"
18 LICENSE="|| ( UoI-NCSA MIT )"
20 KEYWORDS="~amd64 ~x86"
21 IUSE="libunwind +static-libs test"
26 >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}]
27 sys-libs/llvm-libunwind[static-libs?,${MULTILIB_USEDEP}]
31 >=sys-devel/llvm-3.9.0
32 test? ( >=sys-devel/clang-3.9.0
33 ~sys-libs/libcxx-${PV}[libcxxabi(-)]
34 $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
39 has_version "dev-python/lit[${PYTHON_USEDEP}]"
43 use test && python-any-r1_pkg_setup
49 # backport cmake path fix for llvm-3.9+
50 eapply "${FILESDIR}/${P}-cmake-path.patch"
54 NATIVE_LIBDIR=$(get_libdir)
55 cmake-multilib_src_configure
58 multilib_src_configure() {
59 local libdir=$(get_libdir)
61 -DLLVM_LIBDIR_SUFFIX=${NATIVE_LIBDIR#lib}
62 -DLIBCXXABI_LIBDIR_SUFFIX=${libdir#lib}
63 -DLIBCXXABI_ENABLE_SHARED=ON
64 -DLIBCXXABI_ENABLE_STATIC=$(usex static-libs)
65 -DLIBCXXABI_USE_LLVM_UNWINDER=$(usex libunwind)
66 -DLLVM_INCLUDE_TESTS=$(usex test)
68 -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx-${PV}.src/include
72 -DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
75 cmake-utils_src_configure
79 local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
81 [[ -n ${clang_path} ]] || die "Unable to find ${CHOST}-clang for tests"
82 sed -i -e "/cxx_under_test/s^\".*\"^\"${clang_path}\"^" test/lit.site.cfg || die
84 cmake-utils_src_make check-libcxxabi
87 multilib_src_install_all() {
88 insinto /usr/include/libcxxabi