sys-libs/libcxxabi: Wrap up 3.9.0 release
[gentoo.git] / sys-libs / libcxxabi / libcxxabi-3.9.0.ebuild
1 # Copyright 1999-2016 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 EAPI=6
6
7 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
8 CMAKE_MIN_VERSION=3.4.3
9 PYTHON_COMPAT=( python2_7 )
10
11 inherit cmake-multilib python-any-r1
12
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 )"
19 SLOT="0"
20 KEYWORDS="~amd64 ~x86"
21 IUSE="libunwind +static-libs test"
22
23 RDEPEND="
24         libunwind? (
25                 || (
26                         >=sys-libs/libunwind-1.0.1-r1[static-libs?,${MULTILIB_USEDEP}]
27                         sys-libs/llvm-libunwind[static-libs?,${MULTILIB_USEDEP}]
28                 )
29         )"
30 DEPEND="${RDEPEND}
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}]') )"
35
36 S=${WORKDIR}/${P}.src
37
38 python_check_deps() {
39         has_version "dev-python/lit[${PYTHON_USEDEP}]"
40 }
41
42 pkg_setup() {
43         use test && python-any-r1_pkg_setup
44 }
45
46 src_prepare() {
47         default
48
49         # backport cmake path fix for llvm-3.9+
50         eapply "${FILESDIR}/${P}-cmake-path.patch"
51 }
52
53 src_configure() {
54         NATIVE_LIBDIR=$(get_libdir)
55         cmake-multilib_src_configure
56 }
57
58 multilib_src_configure() {
59         local libdir=$(get_libdir)
60         local mycmakeargs=(
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)
67
68                 -DLIBCXXABI_LIBCXX_INCLUDES="${WORKDIR}"/libcxx-${PV}.src/include
69         )
70         if use test; then
71                 mycmakeargs+=(
72                         -DLIT_COMMAND="${EPREFIX}"/usr/bin/lit
73                 )
74         fi
75         cmake-utils_src_configure
76 }
77
78 multilib_src_test() {
79         local clang_path=$(type -P "${CHOST:+${CHOST}-}clang" 2>/dev/null)
80
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
83
84         cmake-utils_src_make check-libcxxabi
85 }
86
87 multilib_src_install_all() {
88         insinto /usr/include/libcxxabi
89         doins -r include/.
90 }