sys-libs/llvm-libunwind: Enable testing
authorMichał Górny <mgorny@gentoo.org>
Fri, 19 Jan 2018 20:26:59 +0000 (21:26 +0100)
committerMichał Górny <mgorny@gentoo.org>
Sat, 20 Jan 2018 08:54:38 +0000 (09:54 +0100)
Closes: https://bugs.gentoo.org/645044

sys-libs/llvm-libunwind/llvm-libunwind-6.0.9999.ebuild
sys-libs/llvm-libunwind/llvm-libunwind-9999.ebuild

index 6c50f73f19b45ebb77d50f5b3f4762fe04d08d69..e972befc5175785117c97c2b0b7b071b85f3aaef 100644 (file)
@@ -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
 
index 88f7a92b6c9c091b40e0218607cda05b6984efb0..5ed8fd671d373a030f041f641b41ec15385e50e6 100644 (file)
@@ -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