From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id CB4A21396D0 for ; Fri, 18 Aug 2017 11:12:54 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 15F15E0D33; Fri, 18 Aug 2017 11:12:54 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id D41EFE0D33 for ; Fri, 18 Aug 2017 11:12:53 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 0CC4934175B for ; Fri, 18 Aug 2017 11:12:52 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 6042379F3 for ; Fri, 18 Aug 2017 11:12:50 +0000 (UTC) From: "David Seifert" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "David Seifert" Message-ID: <1503054679.a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e.soap@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-cpp/gtest/, dev-cpp/gtest/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-cpp/gtest/files/gtest-9999-fix-gcc6-undefined-behavior.patch dev-cpp/gtest/files/gtest-9999-fix-py-tests.patch dev-cpp/gtest/gtest-9999.ebuild X-VCS-Directories: dev-cpp/gtest/ dev-cpp/gtest/files/ X-VCS-Committer: soap X-VCS-Committer-Name: David Seifert X-VCS-Revision: a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e X-VCS-Branch: master Date: Fri, 18 Aug 2017 11:12:50 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 95bfc038-d820-4dda-ac1a-6fcc9037239b X-Archives-Hash: e1d7b30e6de44c9997cea36ae1c499c2 commit: a231a5e1700c7bcfb0d7623a4e388a4ed0d28e5e Author: David Seifert gentoo org> AuthorDate: Fri Aug 18 11:10:19 2017 +0000 Commit: David Seifert gentoo 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}/$) ++ --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 +}