diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/Manifest b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/Manifest index 8f44d59040..5cdb002b89 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/Manifest +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/Manifest @@ -1,2 +1,2 @@ -DIST gtest-1.13.0.tar.gz 862871 BLAKE2B d2768332c233d62f7a5f5332b63dc587c96c24765b2eeaa4f4caf5d421b175aa850d81cec4f50eeef9e06d4b86cb959555b4c2862a197ce3cb86d61fcb51f5d1 SHA512 70c0cfb1b4147bdecb467ecb22ae5b5529eec0abc085763213a796b7cdbd81d1761d12b342060539b936fa54f345d33f060601544874d6213fdde79111fa813e DIST gtest-1.14.0.tar.gz 867764 BLAKE2B c457f55ac572b9fb1553eee3df7eeeaf1e7dd2c3d747dd5e90dd279038fa5c71bb7b7d9ba1cf7e6143898b2a1d24d100584bd2a48ded41a426870c4825eec1b2 SHA512 765c326ccc1b87a01027385e69238266e356361cd4ee3e18e3c9d137a5d11fa5d657c164d02dd1be8fe693c8e10f2b580588dbfa57d27f070e2750f50d3e662c +DIST gtest-1.15.2.tar.gz 872667 BLAKE2B 2525d7a8572364cc2c2c129197201fc31e3cb4aadf4be37a995447a9b8e393205628e666dd190dca9a169b693883a5a2a5cafd6432cc3d1263a0c834ff8cf121 SHA512 9046841044a2bf7edfd96854ad9c44ffae4fcb9fb59a075b367507c0762a98eb32cb6968d46663228272e26321e96f4dd287c95baa22c6af9bad902b8b6ede4e diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-1.15.2-fix-gtest_help_test.patch b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-1.15.2-fix-gtest_help_test.patch new file mode 100644 index 0000000000..1ba087a53e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-1.15.2-fix-gtest_help_test.patch @@ -0,0 +1,17 @@ +Similar to the bazel build, gtest is supposed to pass --has_absl_flags to +gtest_help_test if building with abseil support but neglects to. + +--- a/googletest/CMakeLists.txt ++++ b/googletest/CMakeLists.txt +@@ -293,7 +293,11 @@ + py_test(googletest-filter-unittest) + + cxx_executable(gtest_help_test_ test gtest_main) ++ if(NOT GTEST_HAS_ABSL) + py_test(gtest_help_test) ++ else() ++ py_test(gtest_help_test --has_absl_flags) ++ endif() + + cxx_executable(googletest-list-tests-unittest_ test gtest) + py_test(googletest-list-tests-unittest) diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-find-re2-with-pkgconfig.patch b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-find-re2-with-pkgconfig.patch new file mode 100644 index 0000000000..3a78ae15ca --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/files/gtest-find-re2-with-pkgconfig.patch @@ -0,0 +1,32 @@ +dev-libs/re2 is built with a Makefile which doesn't install any cmake modules. +For now, use pkgconfig. + +Bug: https://bugs.gentoo.org/940734 +Signed-off-by: Peter Levine + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,7 +25,9 @@ + find_package(absl REQUIRED) + endif() + if(NOT TARGET re2::re2) +- find_package(re2 REQUIRED) ++ find_package(PkgConfig REQUIRED) ++ pkg_check_modules(re2 REQUIRED IMPORTED_TARGET re2) ++ add_library(re2::re2 ALIAS PkgConfig::re2) + endif() + endif() + +--- a/googletest/cmake/Config.cmake.in ++++ b/googletest/cmake/Config.cmake.in +@@ -6,7 +6,9 @@ + endif() + if (@GTEST_HAS_ABSL@) + find_dependency(absl) +- find_dependency(re2) ++ find_package(PkgConfig) ++ pkg_check_modules(re2 IMPORTED_TARGET re2) ++ add_library(re2::re2 ALIAS PkgConfig::re2) + endif() + + include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.13.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.13.0.ebuild deleted file mode 100644 index da5e784b43..0000000000 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.13.0.ebuild +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -# Python is required for tests and some build tasks. -PYTHON_COMPAT=( python3_{9..11} ) - -inherit cmake-multilib python-any-r1 - -if [[ ${PV} == "9999" ]]; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/google/googletest" -else - if [[ -z ${GOOGLETEST_COMMIT} ]]; then - SRC_URI="https://github.com/google/googletest/archive/refs/tags/v${PV}.tar.gz - -> ${P}.tar.gz" - S="${WORKDIR}"/googletest-${PV} - else - SRC_URI="https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz - -> ${P}.tar.gz" - S="${WORKDIR}"/googletest-${GOOGLETEST_COMMIT} - fi - KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -fi - -DESCRIPTION="Google C++ Testing Framework" -HOMEPAGE="https://github.com/google/googletest" - -LICENSE="BSD" -SLOT="0" -IUSE="doc examples test" -RESTRICT="!test? ( test )" - -BDEPEND="test? ( ${PYTHON_DEPS} )" - -pkg_setup() { - use test && python-any-r1_pkg_setup -} - -src_prepare() { - cmake_src_prepare - - sed -i -e '/set(cxx_base_flags /s:-Werror::' \ - googletest/cmake/internal_utils.cmake || die "sed failed!" -} - -multilib_src_configure() { - local mycmakeargs=( - -DBUILD_GMOCK=ON - -DINSTALL_GTEST=ON - - # tests - -Dgmock_build_tests=$(usex test) - -Dgtest_build_tests=$(usex test) - -DPYTHON_EXECUTABLE="${PYTHON}" - ) - cmake_src_configure -} - -multilib_src_test() { - # Exclude tests that fail with FEATURES="usersandbox" - cmake_src_test -E "googletest-(death-test|port)-test" -} - -multilib_src_install_all() { - einstalldocs - - newdoc googletest/README.md README.googletest.md - newdoc googlemock/README.md README.googlemock.md - - use doc && dodoc -r docs/. - - if use examples; then - docinto examples - dodoc googletest/samples/*.{cc,h} - fi -} diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.14.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.15.2.ebuild similarity index 59% rename from sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.14.0.ebuild rename to sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.15.2.ebuild index e0b2f35af4..f791647945 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.14.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-1.15.2.ebuild @@ -6,7 +6,7 @@ EAPI=8 # Python is required for tests and some build tasks. PYTHON_COMPAT=( python3_{10..13} ) -inherit cmake-multilib python-any-r1 +inherit cmake-multilib flag-o-matic python-any-r1 toolchain-funcs if [[ ${PV} == "9999" ]]; then inherit git-r3 @@ -21,7 +21,7 @@ else -> ${P}.tar.gz" S="${WORKDIR}"/googletest-${GOOGLETEST_COMMIT} fi - KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="Google C++ Testing Framework" @@ -29,34 +29,51 @@ HOMEPAGE="https://github.com/google/googletest" LICENSE="BSD" SLOT="0" -IUSE="doc examples test" +IUSE="abseil doc examples test" RESTRICT="!test? ( test )" BDEPEND="test? ( ${PYTHON_DEPS} )" +DEPEND="abseil? ( + dev-cpp/abseil-cpp:=[${MULTILIB_USEDEP}] + dev-libs/re2:=[${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND}" + +# Exclude tests that fail with FEATURES="usersandbox" +CMAKE_SKIP_TESTS=( "googletest-(death-test|port)-test" ) + +PATCHES=( + "${FILESDIR}"/gtest-find-re2-with-pkgconfig.patch + "${FILESDIR}"/gtest-1.15.2-fix-gtest_help_test.patch +) pkg_setup() { use test && python-any-r1_pkg_setup } multilib_src_configure() { + if use arm && [[ $(tc-is-softfloat) =~ (softfp)|(no) ]]; then + replace-flags -O* -O1 # bug #925093 + fi + local mycmakeargs=( -DBUILD_GMOCK=ON -DINSTALL_GTEST=ON + -DGTEST_HAS_ABSL=$(usex abseil) # tests -Dgmock_build_tests=$(usex test) -Dgtest_build_tests=$(usex test) ) - use test && mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" ) + if use test; then + if use x86 || use x86-linux; then + append-cxxflags -ffloat-store # bug #905007 + fi + mycmakeargs+=( -DPython3_EXECUTABLE="${PYTHON}" ) + fi cmake_src_configure } -multilib_src_test() { - # Exclude tests that fail with FEATURES="usersandbox" - cmake_src_test -E "googletest-(death-test|port)-test" -} - multilib_src_install_all() { einstalldocs diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-9999.ebuild index be39799c27..f791647945 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/gtest-9999.ebuild @@ -21,7 +21,7 @@ else -> ${P}.tar.gz" S="${WORKDIR}"/googletest-${GOOGLETEST_COMMIT} fi - KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" fi DESCRIPTION="Google C++ Testing Framework" @@ -29,10 +29,22 @@ HOMEPAGE="https://github.com/google/googletest" LICENSE="BSD" SLOT="0" -IUSE="doc examples test" +IUSE="abseil doc examples test" RESTRICT="!test? ( test )" BDEPEND="test? ( ${PYTHON_DEPS} )" +DEPEND="abseil? ( + dev-cpp/abseil-cpp:=[${MULTILIB_USEDEP}] + dev-libs/re2:=[${MULTILIB_USEDEP}] )" +RDEPEND="${DEPEND}" + +# Exclude tests that fail with FEATURES="usersandbox" +CMAKE_SKIP_TESTS=( "googletest-(death-test|port)-test" ) + +PATCHES=( + "${FILESDIR}"/gtest-find-re2-with-pkgconfig.patch + "${FILESDIR}"/gtest-1.15.2-fix-gtest_help_test.patch +) pkg_setup() { use test && python-any-r1_pkg_setup @@ -46,6 +58,7 @@ multilib_src_configure() { local mycmakeargs=( -DBUILD_GMOCK=ON -DINSTALL_GTEST=ON + -DGTEST_HAS_ABSL=$(usex abseil) # tests -Dgmock_build_tests=$(usex test) @@ -61,11 +74,6 @@ multilib_src_configure() { cmake_src_configure } -multilib_src_test() { - # Exclude tests that fail with FEATURES="usersandbox" - cmake_src_test -E "googletest-(death-test|port)-test" -} - multilib_src_install_all() { einstalldocs diff --git a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/metadata.xml b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/metadata.xml index 2a73b6d650..982d3d7ce6 100644 --- a/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/dev-cpp/gtest/metadata.xml @@ -9,6 +9,11 @@ proxy-maint@gentoo.org Proxy Maintainers + + + Build with functionality provided by dev-cpp/abseil-cpp and dev-libs/re2 + + https://github.com/google/googletest/tree/HEAD/docs google/googletest