public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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
+}


             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