dev-cpp/gtest: Add live ebuild

Package-Manager: Portage-2.3.6, Repoman-2.3.3
This commit is contained in:
David Seifert
2017-08-18 13:10:19 +02:00
parent 7aeabc06ff
commit a231a5e170
3 changed files with 104 additions and 0 deletions

View File

@@ -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);

View File

@@ -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()

View File

@@ -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
}