commit:     ee6810253547c6ec221b37ff8ffde0b8a0c27d2b
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 19 20:26:59 2018 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Jan 20 08:54:38 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee681025

sys-libs/llvm-libunwind: Enable testing

Closes: https://bugs.gentoo.org/645044

 .../llvm-libunwind/llvm-libunwind-6.0.9999.ebuild  | 42 +++++++++++++++++++--
 sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild | 44 ++++++++++++++++++++--
 2 files changed, 79 insertions(+), 7 deletions(-)

diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-6.0.9999.ebuild 
b/sys-libs/llvm-libunwind/llvm-libunwind-6.0.9999.ebuild
index 6c50f73f19b..e972befc517 100644
--- a/sys-libs/llvm-libunwind/llvm-libunwind-6.0.9999.ebuild
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-6.0.9999.ebuild
@@ -6,7 +6,8 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
 CMAKE_MIN_VERSION=3.7.0-r1
-inherit cmake-multilib git-r3 llvm
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+inherit cmake-multilib git-r3 llvm python-any-r1
 
 DESCRIPTION="C++ runtime stack unwinder from LLVM"
 HOMEPAGE="https://github.com/llvm-mirror/libunwind";
@@ -18,15 +19,38 @@ EGIT_BRANCH="release_60"
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="debug +static-libs"
+IUSE="debug +static-libs test"
+RESTRICT="!test? ( test )"
 
 RDEPEND="!sys-libs/libunwind"
 # LLVM 4 required for llvm-config --cmakedir
-DEPEND=">=sys-devel/llvm-4"
+DEPEND=">=sys-devel/llvm-4
+       test? (
+               sys-libs/libcxx[${MULTILIB_USEDEP}]
+               $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
 
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+python_check_deps() {
+       has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+       # we need headers & test utilities
+       git-r3_fetch "https://git.llvm.org/git/libcxx.git
+               https://github.com/llvm-mirror/libcxx.git";
+       git-r3_fetch
+
+       git-r3_checkout https://llvm.org/git/libcxx.git \
+               "${WORKDIR}"/libcxx '' include utils/libcxx
+       git-r3_checkout
+}
+
 multilib_src_configure() {
        local libdir=$(get_libdir)
 
@@ -34,11 +58,23 @@ multilib_src_configure() {
                -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
                -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
                -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+               -DLLVM_INCLUDE_TESTS=$(usex test)
        )
+       if use test; then
+               mycmakeargs+=(
+                       -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+                       -DLLVM_LIT_ARGS="-vv"
+                       -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}"/libcxx
+               )
+       fi
 
        cmake-utils_src_configure
 }
 
+multilib_src_test() {
+       cmake-utils_src_make check-unwind
+}
+
 multilib_src_install() {
        cmake-utils_src_install
 

diff --git a/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild 
b/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild
index 88f7a92b6c9..5ed8fd671d3 100644
--- a/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild
+++ b/sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -6,7 +6,8 @@ EAPI=6
 : ${CMAKE_MAKEFILE_GENERATOR:=ninja}
 # (needed due to CMAKE_BUILD_TYPE != Gentoo)
 CMAKE_MIN_VERSION=3.7.0-r1
-inherit cmake-multilib git-r3 llvm
+PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} )
+inherit cmake-multilib git-r3 llvm python-any-r1
 
 DESCRIPTION="C++ runtime stack unwinder from LLVM"
 HOMEPAGE="https://github.com/llvm-mirror/libunwind";
@@ -17,15 +18,38 @@ EGIT_REPO_URI="https://git.llvm.org/git/libunwind.git
 LICENSE="|| ( UoI-NCSA MIT )"
 SLOT="0"
 KEYWORDS=""
-IUSE="debug +static-libs"
+IUSE="debug +static-libs test"
+RESTRICT="!test? ( test )"
 
 RDEPEND="!sys-libs/libunwind"
 # LLVM 4 required for llvm-config --cmakedir
-DEPEND=">=sys-devel/llvm-4"
+DEPEND=">=sys-devel/llvm-4
+       test? (
+               sys-libs/libcxx[${MULTILIB_USEDEP}]
+               $(python_gen_any_dep 'dev-python/lit[${PYTHON_USEDEP}]') )"
 
 # least intrusive of all
 CMAKE_BUILD_TYPE=RelWithDebInfo
 
+python_check_deps() {
+       has_version "dev-python/lit[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
+src_unpack() {
+       # we need headers & test utilities
+       git-r3_fetch "https://git.llvm.org/git/libcxx.git
+               https://github.com/llvm-mirror/libcxx.git";
+       git-r3_fetch
+
+       git-r3_checkout https://llvm.org/git/libcxx.git \
+               "${WORKDIR}"/libcxx '' include utils/libcxx
+       git-r3_checkout
+}
+
 multilib_src_configure() {
        local libdir=$(get_libdir)
 
@@ -33,11 +57,23 @@ multilib_src_configure() {
                -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
                -DLIBUNWIND_ENABLE_ASSERTIONS=$(usex debug)
                -DLIBUNWIND_ENABLE_STATIC=$(usex static-libs)
+               -DLLVM_INCLUDE_TESTS=$(usex test)
        )
+       if use test; then
+               mycmakeargs+=(
+                       -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit"
+                       -DLLVM_LIT_ARGS="-vv"
+                       -DLIBUNWIND_LIBCXX_PATH="${WORKDIR}"/libcxx
+               )
+       fi
 
        cmake-utils_src_configure
 }
 
+multilib_src_test() {
+       cmake-utils_src_make check-unwind
+}
+
 multilib_src_install() {
        cmake-utils_src_install
 

Reply via email to