From: "David Seifert" <soap@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-cpp/gtest/, dev-cpp/gtest/files/
Date: Fri, 18 Aug 2017 11:12:50 +0000 (UTC) [thread overview]
Message-ID: <1503054679.a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.soap@gentoo> (raw)
commit: a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 18 11:10:19 2017 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Fri Aug 18 11:11:19 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a231a5e1
dev-cpp/gtest: Add live ebuild
Package-Manager: Portage-2.3.6, Repoman-2.3.3
.../gtest-9999-fix-gcc6-undefined-behavior.patch | 21 +++++++
dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch | 19 +++++++
dev-cpp/gtest/gtest-9999.ebuild | 64 ++++++++++++++++++++++
3 files changed, 104 insertions(+)
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 00000000000..eadfe619738
--- /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 00000000000..ba63c7b3eeb
--- /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 00000000000..0c82ebfb485
--- /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
+}
next reply other threads:[~2017-08-18 11:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-18 11:12 David Seifert [this message]
-- strict thread matches above, loose matches on Subject: below --
2018-09-22 7:07 [gentoo-commits] repo/gentoo:master commit in: dev-cpp/gtest/, dev-cpp/gtest/files/ Michał Górny
2019-06-15 20:29 Michał Górny
2019-08-21 5:07 Joonas Niilola
2020-07-19 10:43 Joonas Niilola
2020-10-09 8:53 Michał Górny
2024-10-14 7:16 Florian Schmaus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1503054679.a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.soap@gentoo \
--to=soap@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox