mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
dev-cpp/gtest: Add live ebuild
Package-Manager: Portage-2.3.6, Repoman-2.3.3
This commit is contained in:
@@ -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);
|
||||
|
||||
19
dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch
Normal file
19
dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch
Normal 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()
|
||||
64
dev-cpp/gtest/gtest-9999.ebuild
Normal file
64
dev-cpp/gtest/gtest-9999.ebuild
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user