diff options
author | David Seifert <soap@gentoo.org> | 2017-08-18 13:10:19 +0200 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2017-08-18 13:11:19 +0200 |
commit | a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e (patch) | |
tree | 2ad48cd8cb0948406f54a150c15eb04c8c341776 /dev-cpp/gtest | |
parent | app-vim/vimcdoc: new package. (diff) | |
download | gentoo-a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.tar.gz gentoo-a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.tar.bz2 gentoo-a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.zip |
dev-cpp/gtest: Add live ebuild
Package-Manager: Portage-2.3.6, Repoman-2.3.3
Diffstat (limited to 'dev-cpp/gtest')
-rw-r--r-- | dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch | 21 | ||||
-rw-r--r-- | dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch | 19 | ||||
-rw-r--r-- | dev-cpp/gtest/gtest-9999.ebuild | 64 |
3 files changed, 104 insertions, 0 deletions
diff --git a/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch b/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch new file mode 100644 index 000000000000..eadfe6197389 --- /dev/null +++ b/dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch @@ -0,0 +1,21 @@ +Fix build with GCC 6 due to lifetime issues. + +--- a/googletest/src/gtest.cc ++++ b/googletest/src/gtest.cc +@@ -2654,10 +2654,12 @@ + test->Run(); + } + +- // Deletes the test object. +- impl->os_stack_trace_getter()->UponLeavingGTest(); +- internal::HandleExceptionsInMethodIfSupported( +- test, &Test::DeleteSelf_, "the test fixture's destructor"); ++ if (test != NULL) { ++ // Deletes the test object. ++ impl->os_stack_trace_getter()->UponLeavingGTest(); ++ internal::HandleExceptionsInMethodIfSupported( ++ test, &Test::DeleteSelf_, "the test fixture's destructor"); ++ } + + result_.set_elapsed_time(internal::GetTimeInMillis() - start); + diff --git a/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch b/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch new file mode 100644 index 000000000000..ba63c7b3eeb3 --- /dev/null +++ b/dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch @@ -0,0 +1,19 @@ +Fix python tests that use broken generator expressions + +--- a/googletest/cmake/internal_utils.cmake ++++ b/googletest/cmake/internal_utils.cmake +@@ -247,12 +247,12 @@ + add_test( + NAME ${name} + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py +- --build_dir=${CMAKE_CURRENT_BINARY_DIR}/$<CONFIGURATION>) ++ --build_dir=${CMAKE_CURRENT_BINARY_DIR}) + else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1) + add_test( + ${name} + ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py +- --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE}) ++ --build_dir=${CMAKE_CURRENT_BINARY_DIR}) + endif (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.1) + endif() + endfunction() diff --git a/dev-cpp/gtest/gtest-9999.ebuild b/dev-cpp/gtest/gtest-9999.ebuild new file mode 100644 index 000000000000..0c82ebfb4851 --- /dev/null +++ b/dev-cpp/gtest/gtest-9999.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +# Python is required for tests and some build tasks. +PYTHON_COMPAT=( python2_7 ) + +inherit git-r3 python-any-r1 cmake-multilib + +DESCRIPTION="Google C++ Testing Framework" +HOMEPAGE="https://github.com/google/googletest" +EGIT_REPO_URI="https://github.com/google/googletest.git" + +LICENSE="BSD" +SLOT="0" +IUSE="examples test" +# Test require a ton of privileges, namely +# FEATURES="-sandbox -userpriv -usersandbox" +# which is generally not acceptable for Gentoo +RESTRICT="test" + +DEPEND="test? ( ${PYTHON_DEPS} )" +RDEPEND="!dev-cpp/gmock" + +PATCHES=( + "${FILESDIR}"/${P}-fix-py-tests.patch + "${FILESDIR}"/${P}-fix-gcc6-undefined-behavior.patch +) + +pkg_setup() { + use test && python-any-r1_pkg_setup +} + +multilib_src_configure() { + local mycmakeargs=( + -DBUILD_GMOCK=ON + -DBUILD_GTEST=ON + -DINSTALL_GMOCK=ON + -DINSTALL_GTEST=ON + -Dgtest_build_samples=OFF + -Dgtest_disable_pthreads=OFF + + # currently only static libs work + # due to numerous ODR violations + # https://github.com/google/googletest/issues/930 + -DBUILD_SHARED_LIBS=OFF + + # tests + -Dgmock_build_tests=$(usex test) + -Dgtest_build_tests=$(usex test) + -DPYTHON_EXECUTABLE="${PYTHON}" + ) + cmake-utils_src_configure +} + +multilib_src_install_all() { + einstalldocs + + if use examples; then + docinto examples + dodoc googletest/samples/*.{cc,h} + fi +} |