summaryrefslogtreecommitdiff
path: root/dev-cpp/benchmark
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /dev-cpp/benchmark
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'dev-cpp/benchmark')
-rw-r--r--dev-cpp/benchmark/Manifest6
-rw-r--r--dev-cpp/benchmark/benchmark-1.8.4.ebuild34
-rw-r--r--dev-cpp/benchmark/benchmark-1.9.1-r1.ebuild92
-rw-r--r--dev-cpp/benchmark/benchmark-1.9.2.ebuild93
-rw-r--r--dev-cpp/benchmark/benchmark-1.9.3.ebuild93
-rw-r--r--dev-cpp/benchmark/benchmark-1.9.4.ebuild93
-rw-r--r--dev-cpp/benchmark/benchmark-1.9.5.ebuild93
-rw-r--r--dev-cpp/benchmark/files/benchmark-1.9.0-fix-documentation-installation.patch47
-rw-r--r--dev-cpp/benchmark/files/benchmark-1.9.1-clock-detection-portability.patch205
-rw-r--r--dev-cpp/benchmark/files/benchmark-1.9.1-fix-pfm-cmake.patch36
-rw-r--r--dev-cpp/benchmark/files/benchmark-1.9.5-fix-documentation-installation.patch42
-rw-r--r--dev-cpp/benchmark/metadata.xml30
12 files changed, 864 insertions, 0 deletions
diff --git a/dev-cpp/benchmark/Manifest b/dev-cpp/benchmark/Manifest
new file mode 100644
index 000000000000..b9c8ff454017
--- /dev/null
+++ b/dev-cpp/benchmark/Manifest
@@ -0,0 +1,6 @@
+DIST benchmark-1.8.4.tar.gz 253916 BLAKE2B 78a290a5013d8371e87b7c918e518e3ec0e8247e25e211d160ab8dea51d8871d8dac54ee91ee0c512af86a60d1f4e9baedadc20d4a7fa28ef790411fda0399c8 SHA512 835d12b88fe52309ce6b2ffbc8b3c178ac594be7d249b5daca0373d1d03ec83ea3c7b94224f67f22d21919376985867eeff0d1c0721501cfd8a9e9b8a9c48882
+DIST benchmark-1.9.1.tar.gz 255148 BLAKE2B 39b78afcb333c750960f476476b625d7f72b7cb787176deda1bd939d030e39b16fd008816c64447f7bb224983f2e80b047636f727a3d6d938f1b44dc25bddb55 SHA512 fc787d3d60a55abb3edaa575bf947c72e1ad1404a35bfddf585299411bcd04d32503bba563f9a36dccf128fce6261b97d460d6c293ed2c2d0807cf0154c86aa7
+DIST benchmark-1.9.2.tar.gz 258938 BLAKE2B fed5a3d2447ac32c6e717a936c662d7ef7464978e6ff2d1e625576eee3a225e33d9125d7be5cd287fc069399ddaf76c0c2904caeec467f3f89755e59d3fe75e6 SHA512 64e964f02c118935305ca3e7d3f732f2e093f927371bd1729467f6cb75dc0c42492f9f02c3191e3d8affdc9bab2e66becf10bd4250b768854074bf69efa7e4f2
+DIST benchmark-1.9.3.tar.gz 262114 BLAKE2B 978baf8380d81d98e7d465458953503881a12d4bc66f4bb3daf66b94c1bb1c268d4cc2733cd806af6e262faea1a7db2d71bdd86216a1c5f08b132b27fb0bff11 SHA512 bd1bc103c89ec74a7dfdb09aa4b308496f79ccfe0a728e31eed2814b9ff0f19aa930c58827d044dac07e2e776f990f74ebc4c7cd9c86b37871f8868e1581d4e1
+DIST benchmark-1.9.4.tar.gz 262499 BLAKE2B 93efe09a72c61639bbbd1fc97f851f77a742eb356ac2470377643eff327861c0ffdf45a043295db8f317baff709f89b56b27fe8cbbca9a6afd64081cf047672b SHA512 f9031f144a7deeed151d22676b50384c03e5bbd19b68dac9471e91e49c408b770158c5c325f58e6ac07437955fdab3f08aeee76ba7ca5f97d2b51f14f6782416
+DIST benchmark-1.9.5.tar.gz 267155 BLAKE2B 18a7df6f5145160818c55478f5b28d1e69d8ad59e812c1b77cd32c88ac823f122d8df40dab06497d91945458bf4ca9b456729a44989448ece8f7d9b80fc8e138 SHA512 f207a63868e0c52f31a66ff9fd0ee75183ce3aaaa0946b00a49b77836507363bac8574feef8d9da82810a3167847303d6edf939e74802ad17e5a615bbf61e372
diff --git a/dev-cpp/benchmark/benchmark-1.8.4.ebuild b/dev-cpp/benchmark/benchmark-1.8.4.ebuild
new file mode 100644
index 000000000000..b800d96f5d0f
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.8.4.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark"
+SRC_URI="https://github.com/google/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86"
+IUSE="debug doc test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="doc? ( app-text/doxygen )
+ test? ( >=dev-cpp/gtest-1.11.0 )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_ASSEMBLY_TESTS=OFF
+ -DBENCHMARK_ENABLE_DOXYGEN=$(usex doc)
+ -DBENCHMARK_ENABLE_GTEST_TESTS=$(usex test)
+ -DBENCHMARK_ENABLE_TESTING=$(usex test)
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+ )
+
+ use debug || append-cppflags -DNDEBUG
+
+ cmake_src_configure
+}
diff --git a/dev-cpp/benchmark/benchmark-1.9.1-r1.ebuild b/dev-cpp/benchmark/benchmark-1.9.1-r1.ebuild
new file mode 100644
index 000000000000..eef4921ee55f
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.9.1-r1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake-multilib flag-o-matic python-single-r1
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark/"
+SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="amd64 ~arm arm64 ~loong ppc ppc64 ~riscv x86"
+IUSE="doc debug libpfm test +tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+ libpfm? ( dev-libs/libpfm:= )
+"
+RDEPEND="
+ ${DEPEND}
+ tools? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ )
+"
+BDEPEND="
+ doc? ( app-text/doxygen )
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.9.0-fix-documentation-installation.patch"
+ "${FILESDIR}/${P}-clock-detection-portability.patch"
+ "${FILESDIR}/${P}-fix-pfm-cmake.patch"
+)
+
+pkg_setup() {
+ use tools && python-single-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # bug #943629
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_DOXYGEN="$(usex doc)"
+ -DBENCHMARK_ENABLE_GTEST_TESTS="$(usex test)"
+ # Users should control this via *FLAGS
+ -DBENCHMARK_ENABLE_LTO=OFF
+ -DBENCHMARK_ENABLE_LIBPFM="$(multilib_native_usex libpfm)"
+ -DBENCHMARK_ENABLE_TESTING="$(usex test)"
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_INSTALL_DOCS="$(usex doc)"
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+ # This is determined by profile.
+ -DBENCHMARK_USE_LIBCXX=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ # CMake already warns on these being brittle w/ diff
+ # compiler versions. Could do with investigation if bored
+ # but not critical. See bug #941538.
+ run_donotoptimize_assembly_test_CHECK
+ run_state_assembly_test_CHECK
+ run_clobber_memory_assembly_test_CHECK
+ )
+
+ cmake_src_test
+}
+
+multilib_src_install_all() {
+ dodoc CONTRIBUTING.md
+ dodoc CONTRIBUTORS
+
+ if use tools; then
+ python_domodule tools/gbench
+ python_doscript tools/compare.py
+ python_doscript tools/strip_asm.py
+ fi
+}
diff --git a/dev-cpp/benchmark/benchmark-1.9.2.ebuild b/dev-cpp/benchmark/benchmark-1.9.2.ebuild
new file mode 100644
index 000000000000..62e9621d386b
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.9.2.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake-multilib flag-o-matic python-single-r1
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark/"
+SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~alpha amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86"
+IUSE="doc debug libpfm test +tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="libpfm? ( dev-libs/libpfm:= )"
+
+RDEPEND="
+ ${DEPEND}
+
+ tools? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}]
+ ')
+
+ ${PYTHON_DEPS}
+ )
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.9.0-fix-documentation-installation.patch" )
+
+pkg_setup() {
+ use tools && python-single-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # bug #943629
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_DOXYGEN="$(usex doc)"
+ -DBENCHMARK_ENABLE_GTEST_TESTS="$(usex test)"
+
+ # Users should control this via *FLAGS
+ -DBENCHMARK_ENABLE_LTO=OFF
+
+ -DBENCHMARK_ENABLE_LIBPFM="$(multilib_native_usex libpfm)"
+ -DBENCHMARK_ENABLE_TESTING="$(usex test)"
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_INSTALL_DOCS="$(usex doc)"
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+
+ # This is determined by profile
+ -DBENCHMARK_USE_LIBCXX=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ # CMake already warns on these being brittle w/ diff
+ # compiler versions. Could do with investigation if bored
+ # but not critical. See bug #941538.
+
+ run_donotoptimize_assembly_test_CHECK
+ run_state_assembly_test_CHECK
+ run_clobber_memory_assembly_test_CHECK
+ )
+
+ cmake_src_test
+}
+
+multilib_src_install_all() {
+ dodoc CONTRIBUTING.md
+ dodoc CONTRIBUTORS
+
+ if use tools; then
+ python_domodule tools/gbench
+ python_doscript tools/compare.py
+ python_doscript tools/strip_asm.py
+ fi
+}
diff --git a/dev-cpp/benchmark/benchmark-1.9.3.ebuild b/dev-cpp/benchmark/benchmark-1.9.3.ebuild
new file mode 100644
index 000000000000..0d246629508d
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.9.3.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake-multilib flag-o-matic python-single-r1
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark/"
+SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc debug libpfm test +tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="libpfm? ( dev-libs/libpfm:= )"
+
+RDEPEND="
+ ${DEPEND}
+
+ tools? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}]
+ ')
+
+ ${PYTHON_DEPS}
+ )
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.9.0-fix-documentation-installation.patch" )
+
+pkg_setup() {
+ use tools && python-single-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # bug #943629
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_DOXYGEN="$(usex doc)"
+ -DBENCHMARK_ENABLE_GTEST_TESTS="$(usex test)"
+
+ # Users should control this via *FLAGS
+ -DBENCHMARK_ENABLE_LTO=OFF
+
+ -DBENCHMARK_ENABLE_LIBPFM="$(multilib_native_usex libpfm)"
+ -DBENCHMARK_ENABLE_TESTING="$(usex test)"
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_INSTALL_DOCS="$(usex doc)"
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+
+ # This is determined by profile
+ -DBENCHMARK_USE_LIBCXX=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ # CMake already warns on these being brittle w/ diff
+ # compiler versions. Could do with investigation if bored
+ # but not critical. See bug #941538.
+
+ run_donotoptimize_assembly_test_CHECK
+ run_state_assembly_test_CHECK
+ run_clobber_memory_assembly_test_CHECK
+ )
+
+ cmake_src_test
+}
+
+multilib_src_install_all() {
+ dodoc CONTRIBUTING.md
+ dodoc CONTRIBUTORS
+
+ if use tools; then
+ python_domodule tools/gbench
+ python_doscript tools/compare.py
+ python_doscript tools/strip_asm.py
+ fi
+}
diff --git a/dev-cpp/benchmark/benchmark-1.9.4.ebuild b/dev-cpp/benchmark/benchmark-1.9.4.ebuild
new file mode 100644
index 000000000000..0d246629508d
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.9.4.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake-multilib flag-o-matic python-single-r1
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark/"
+SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc debug libpfm test +tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="libpfm? ( dev-libs/libpfm:= )"
+
+RDEPEND="
+ ${DEPEND}
+
+ tools? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}]
+ ')
+
+ ${PYTHON_DEPS}
+ )
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.9.0-fix-documentation-installation.patch" )
+
+pkg_setup() {
+ use tools && python-single-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # bug #943629
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_DOXYGEN="$(usex doc)"
+ -DBENCHMARK_ENABLE_GTEST_TESTS="$(usex test)"
+
+ # Users should control this via *FLAGS
+ -DBENCHMARK_ENABLE_LTO=OFF
+
+ -DBENCHMARK_ENABLE_LIBPFM="$(multilib_native_usex libpfm)"
+ -DBENCHMARK_ENABLE_TESTING="$(usex test)"
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_INSTALL_DOCS="$(usex doc)"
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+
+ # This is determined by profile
+ -DBENCHMARK_USE_LIBCXX=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ # CMake already warns on these being brittle w/ diff
+ # compiler versions. Could do with investigation if bored
+ # but not critical. See bug #941538.
+
+ run_donotoptimize_assembly_test_CHECK
+ run_state_assembly_test_CHECK
+ run_clobber_memory_assembly_test_CHECK
+ )
+
+ cmake_src_test
+}
+
+multilib_src_install_all() {
+ dodoc CONTRIBUTING.md
+ dodoc CONTRIBUTORS
+
+ if use tools; then
+ python_domodule tools/gbench
+ python_doscript tools/compare.py
+ python_doscript tools/strip_asm.py
+ fi
+}
diff --git a/dev-cpp/benchmark/benchmark-1.9.5.ebuild b/dev-cpp/benchmark/benchmark-1.9.5.ebuild
new file mode 100644
index 000000000000..b37e694ae8d2
--- /dev/null
+++ b/dev-cpp/benchmark/benchmark-1.9.5.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake-multilib flag-o-matic python-single-r1
+
+DESCRIPTION="A microbenchmark support library"
+HOMEPAGE="https://github.com/google/benchmark/"
+SRC_URI="https://github.com/google/benchmark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+LICENSE="Apache-2.0"
+SLOT="0/$(ver_cut 1)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="doc debug libpfm test +tools"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="tools? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="libpfm? ( dev-libs/libpfm:= )"
+
+RDEPEND="
+ ${DEPEND}
+
+ tools? (
+ $(python_gen_cond_dep '
+ dev-python/numpy[${PYTHON_USEDEP}]
+ >=dev-python/scipy-1.10.0[${PYTHON_USEDEP}]
+ ')
+
+ ${PYTHON_DEPS}
+ )
+"
+
+BDEPEND="
+ doc? ( app-text/doxygen )
+ test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.9.5-fix-documentation-installation.patch" )
+
+pkg_setup() {
+ use tools && python-single-r1_pkg_setup
+}
+
+multilib_src_configure() {
+ # bug #943629
+ use debug || append-cppflags -DNDEBUG
+
+ local mycmakeargs=(
+ -DBENCHMARK_ENABLE_DOXYGEN="$(usex doc)"
+ -DBENCHMARK_ENABLE_GTEST_TESTS="$(usex test)"
+
+ # Users should control this via *FLAGS
+ -DBENCHMARK_ENABLE_LTO=OFF
+
+ -DBENCHMARK_ENABLE_LIBPFM="$(multilib_native_usex libpfm)"
+ -DBENCHMARK_ENABLE_TESTING="$(usex test)"
+ -DBENCHMARK_ENABLE_WERROR=OFF
+ -DBENCHMARK_INSTALL_DOCS="$(usex doc)"
+ -DBENCHMARK_USE_BUNDLED_GTEST=OFF
+
+ # This is determined by profile
+ -DBENCHMARK_USE_LIBCXX=OFF
+ )
+
+ cmake_src_configure
+}
+
+multilib_src_test() {
+ CMAKE_SKIP_TESTS=(
+ # CMake already warns on these being brittle w/ diff
+ # compiler versions. Could do with investigation if bored
+ # but not critical. See bug #941538.
+
+ run_donotoptimize_assembly_test_CHECK
+ run_state_assembly_test_CHECK
+ run_clobber_memory_assembly_test_CHECK
+ )
+
+ cmake_src_test
+}
+
+multilib_src_install_all() {
+ dodoc CONTRIBUTING.md
+ dodoc CONTRIBUTORS
+
+ if use tools; then
+ python_domodule tools/gbench
+ python_doscript tools/compare.py
+ python_doscript tools/strip_asm.py
+ fi
+}
diff --git a/dev-cpp/benchmark/files/benchmark-1.9.0-fix-documentation-installation.patch b/dev-cpp/benchmark/files/benchmark-1.9.0-fix-documentation-installation.patch
new file mode 100644
index 000000000000..631e01881aa8
--- /dev/null
+++ b/dev-cpp/benchmark/files/benchmark-1.9.0-fix-documentation-installation.patch
@@ -0,0 +1,47 @@
+From 009874342ddcf6446bec308686c54bd387a212a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Matt=C3=A9o=20Rossillol=E2=80=91=E2=80=91Laruelle?=
+ <beatussum@protonmail.com>
+Date: Mon, 19 Aug 2024 09:12:57 +0200
+Subject: [PATCH] fix documentation installation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+HTML pages generated by Doxygen are now installed into
+/usr/share/doc/${PF}/html.
+
+The content of the docs directory is always installed even if HTML pages are
+installed.
+
+Signed-off-by: Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com>
+---
+ src/CMakeLists.txt | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 32126c0..40e75e0 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -169,12 +169,12 @@ if (BENCHMARK_ENABLE_DOXYGEN)
+ if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
+ install(
+ DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html/"
+- DESTINATION ${CMAKE_INSTALL_DOCDIR})
+- endif()
+-else()
+- if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
+- install(
+- DIRECTORY "${PROJECT_SOURCE_DIR}/docs/"
+- DESTINATION ${CMAKE_INSTALL_DOCDIR})
++ DESTINATION "${CMAKE_INSTALL_DOCDIR}/html/")
+ endif()
+ endif()
++
++if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
++ install(
++ DIRECTORY "${PROJECT_SOURCE_DIR}/docs/"
++ DESTINATION ${CMAKE_INSTALL_DOCDIR})
++endif()
+--
+2.44.2
+
diff --git a/dev-cpp/benchmark/files/benchmark-1.9.1-clock-detection-portability.patch b/dev-cpp/benchmark/files/benchmark-1.9.1-clock-detection-portability.patch
new file mode 100644
index 000000000000..d9ecd9db56d2
--- /dev/null
+++ b/dev-cpp/benchmark/files/benchmark-1.9.1-clock-detection-portability.patch
@@ -0,0 +1,205 @@
+https://github.com/google/benchmark/commit/f65741b2bd92461dc2c816056eb9c996ae48ad62
+https://github.com/google/benchmark/commit/077db43001b42af3ad23e993b2bdcb4fadb7bcf8
+https://github.com/google/benchmark/commit/39be87d3004ff9ff4cdf736651af80c3d15e2497
+https://github.com/google/benchmark/commit/c24774dc4f4402c3ad150363321cc972ed2669e7
+
+From f65741b2bd92461dc2c816056eb9c996ae48ad62 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Wed, 8 Jan 2025 13:03:53 +0100
+Subject: [PATCH] cycleclock: Support for PA-RISC (hppa) architecture (#1894)
+
+Co-authored-by: dominic <510002+dmah42@users.noreply.github.com>
+---
+ src/cycleclock.h | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/cycleclock.h b/src/cycleclock.h
+index bd62f5d7e7..7852f3df52 100644
+--- a/src/cycleclock.h
++++ b/src/cycleclock.h
+@@ -229,6 +229,16 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
+ struct timeval tv;
+ gettimeofday(&tv, nullptr);
+ return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
++#elif defined(__hppa__)
++ // HP PA-RISC provides a user-readable clock counter (cr16), but
++ // it's not syncronized across CPUs and only 32-bit wide when programs
++ // are built as 32-bit binaries.
++ // Use clock_gettime(CLOCK_MONOTONIC, ...) instead of gettimeofday
++ // because is provides nanosecond resolution.
++ // Initialize to always return 0 if clock_gettime fails.
++ struct timespec ts = {0, 0};
++ clock_gettime(CLOCK_MONOTONIC, &ts);
++ return static_cast<int64_t>(ts.tv_sec) * 1000000000 + ts.tv_nsec;
+ #else
+ // The soft failover to a generic implementation is automatic only for ARM.
+ // For other platforms the developer is expected to make an attempt to create
+
+From 077db43001b42af3ad23e993b2bdcb4fadb7bcf8 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Wed, 8 Jan 2025 17:54:08 +0100
+Subject: [PATCH] cycleclock: Use cock_gettime() as fallback for any Linux
+ architecture (#1899)
+
+The Linux kernel provides the clock_gettime() functions since a long
+time already, so it's possible to use it as a generic fallback option
+for any architecture if no other (better) possibility has been provided
+instead.
+
+I noticed the benchmark package failed to build on debian on the SH-4
+architecture, so with this change SH-4 is now the first user of this
+fallback option.
+---
+ src/cycleclock.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/cycleclock.h b/src/cycleclock.h
+index 7852f3df5..03e02f805 100644
+--- a/src/cycleclock.h
++++ b/src/cycleclock.h
+@@ -229,10 +229,12 @@ inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
+ struct timeval tv;
+ gettimeofday(&tv, nullptr);
+ return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
+-#elif defined(__hppa__)
++#elif defined(__hppa__) || defined(__linux__)
++ // Fallback for all other architectures with a recent Linux kernel, e.g.:
+ // HP PA-RISC provides a user-readable clock counter (cr16), but
+ // it's not syncronized across CPUs and only 32-bit wide when programs
+ // are built as 32-bit binaries.
++ // Same for SH-4 and possibly others.
+ // Use clock_gettime(CLOCK_MONOTONIC, ...) instead of gettimeofday
+ // because is provides nanosecond resolution.
+ // Initialize to always return 0 if clock_gettime fails.
+From 39be87d3004ff9ff4cdf736651af80c3d15e2497 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Thu, 9 Jan 2025 11:47:29 +0100
+Subject: [PATCH] Fix runtime crash when parsing /proc/cpuinfo fails (#1900)
+
+The testcase fails on sparc64, because the parsing of /proc/cpuinfo
+fails and thus currently returns "0" CPUs which finally leads
+to division-by-zero faults in the tests.
+
+Fix the issue by returning at least "1" CPU which allows the
+tests to run. A error message will be printed in any case.
+
+Long-term the code should be fixed to parse the cpuinfo output
+on sparch which looks like this:
+...
+type : sun4v
+ncpus probed : 48
+ncpus active : 48
+---
+ src/sysinfo.cc | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/sysinfo.cc b/src/sysinfo.cc
+index 49bff75e5..ce14b8d8e 100644
+--- a/src/sysinfo.cc
++++ b/src/sysinfo.cc
+@@ -561,10 +561,12 @@ int GetNumCPUsImpl() {
+ }
+
+ int GetNumCPUs() {
+- const int num_cpus = GetNumCPUsImpl();
++ int num_cpus = GetNumCPUsImpl();
+ if (num_cpus < 1) {
+ std::cerr << "Unable to extract number of CPUs. If your platform uses "
+ "/proc/cpuinfo, custom support may need to be added.\n";
++ /* There is at least one CPU which we run on. */
++ num_cpus = 1;
+ }
+ return num_cpus;
+ }
+From c24774dc4f4402c3ad150363321cc972ed2669e7 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Thu, 9 Jan 2025 17:07:43 +0100
+Subject: [PATCH] Get number of CPUs with sysconf() on Linux (#1901)
+
+* Get number of CPUs with sysconf() on Linux
+
+Avoid parsing the /proc/cpuinfo just to get number of CPUs.
+Instead use the portable function provided by glibc.
+
+* Update sysinfo.cc
+---
+ src/sysinfo.cc | 54 +++-----------------------------------------------
+ 1 file changed, 3 insertions(+), 51 deletions(-)
+
+diff --git a/src/sysinfo.cc b/src/sysinfo.cc
+index ce14b8d8e..eddd430e6 100644
+--- a/src/sysinfo.cc
++++ b/src/sysinfo.cc
+@@ -492,14 +492,14 @@ int GetNumCPUsImpl() {
+ GetSystemInfo(&sysinfo);
+ // number of logical processors in the current group
+ return static_cast<int>(sysinfo.dwNumberOfProcessors);
+-#elif defined(BENCHMARK_OS_SOLARIS)
++#elif defined(__linux__) || defined(BENCHMARK_OS_SOLARIS)
+ // Returns -1 in case of a failure.
+- long num_cpu = sysconf(_SC_NPROCESSORS_ONLN);
++ int num_cpu = static_cast<int>(sysconf(_SC_NPROCESSORS_ONLN));
+ if (num_cpu < 0) {
+ PrintErrorAndDie("sysconf(_SC_NPROCESSORS_ONLN) failed with error: ",
+ strerror(errno));
+ }
+- return (int)num_cpu;
++ return num_cpu;
+ #elif defined(BENCHMARK_OS_QNX)
+ return static_cast<int>(_syspage_ptr->num_cpu);
+ #elif defined(BENCHMARK_OS_QURT)
+@@ -508,54 +508,6 @@ int GetNumCPUsImpl() {
+ hardware_threads.max_hthreads = 1;
+ }
+ return hardware_threads.max_hthreads;
+-#else
+- int num_cpus = 0;
+- int max_id = -1;
+- std::ifstream f("/proc/cpuinfo");
+- if (!f.is_open()) {
+- std::cerr << "Failed to open /proc/cpuinfo\n";
+- return -1;
+- }
+-#if defined(__alpha__)
+- const std::string Key = "cpus detected";
+-#else
+- const std::string Key = "processor";
+-#endif
+- std::string ln;
+- while (std::getline(f, ln)) {
+- if (ln.empty()) continue;
+- std::size_t split_idx = ln.find(':');
+- std::string value;
+-#if defined(__s390__)
+- // s390 has another format in /proc/cpuinfo
+- // it needs to be parsed differently
+- if (split_idx != std::string::npos)
+- value = ln.substr(Key.size() + 1, split_idx - Key.size() - 1);
+-#else
+- if (split_idx != std::string::npos) value = ln.substr(split_idx + 1);
+-#endif
+- if (ln.size() >= Key.size() && ln.compare(0, Key.size(), Key) == 0) {
+- num_cpus++;
+- if (!value.empty()) {
+- const int cur_id = benchmark::stoi(value);
+- max_id = std::max(cur_id, max_id);
+- }
+- }
+- }
+- if (f.bad()) {
+- PrintErrorAndDie("Failure reading /proc/cpuinfo");
+- }
+- if (!f.eof()) {
+- PrintErrorAndDie("Failed to read to end of /proc/cpuinfo");
+- }
+- f.close();
+-
+- if ((max_id + 1) != num_cpus) {
+- fprintf(stderr,
+- "CPU ID assignments in /proc/cpuinfo seem messed up."
+- " This is usually caused by a bad BIOS.\n");
+- }
+- return num_cpus;
+ #endif
+ BENCHMARK_UNREACHABLE();
+ }
diff --git a/dev-cpp/benchmark/files/benchmark-1.9.1-fix-pfm-cmake.patch b/dev-cpp/benchmark/files/benchmark-1.9.1-fix-pfm-cmake.patch
new file mode 100644
index 000000000000..c6431056ccce
--- /dev/null
+++ b/dev-cpp/benchmark/files/benchmark-1.9.1-fix-pfm-cmake.patch
@@ -0,0 +1,36 @@
+https://bugs.gentoo.org/950573
+https://github.com/google/benchmark/pull/1942
+
+From d124c771fe507a8eb5bb37697f8b36a7fde19e27 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Wed, 5 Mar 2025 00:16:54 +0200
+Subject: [PATCH] Install FindPFM.cmake for bencmarkConfig.cmake
+
+There is no upstream PFM cmake package config file to use, so this has
+to be installed for the benchmark cmake package config file to work.
+
+Bug: https://bugs.gentoo.org/950573
+See-Also: c2146397ac69e6589a50f6b4fc6a7355669caed5
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/cmake/Config.cmake.in
++++ b/cmake/Config.cmake.in
+@@ -5,6 +5,7 @@ include (CMakeFindDependencyMacro)
+ find_dependency (Threads)
+
+ if (@BENCHMARK_ENABLE_LIBPFM@)
++ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+ find_dependency (PFM)
+ endif()
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -39,6 +39,9 @@ set_property(
+ if (PFM_FOUND)
+ target_link_libraries(benchmark PRIVATE PFM::libpfm)
+ target_compile_definitions(benchmark PRIVATE -DHAVE_LIBPFM)
++ install(
++ FILES "${PROJECT_SOURCE_DIR}/cmake/Modules/FindPFM.cmake"
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
+ endif()
+
+ # pthread affinity, if available
diff --git a/dev-cpp/benchmark/files/benchmark-1.9.5-fix-documentation-installation.patch b/dev-cpp/benchmark/files/benchmark-1.9.5-fix-documentation-installation.patch
new file mode 100644
index 000000000000..5704b7e54658
--- /dev/null
+++ b/dev-cpp/benchmark/files/benchmark-1.9.5-fix-documentation-installation.patch
@@ -0,0 +1,42 @@
+From 009874342ddcf6446bec308686c54bd387a212a4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Matt=C3=A9o=20Rossillol=E2=80=91=E2=80=91Laruelle?=
+ <beatussum@protonmail.com>
+Date: Mon, 19 Aug 2024 09:12:57 +0200
+Subject: [PATCH] fix documentation installation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+HTML pages generated by Doxygen are now installed into
+/usr/share/doc/${PF}/html.
+
+The content of the docs directory is always installed even if HTML pages are
+installed.
+
+Signed-off-by: Mattéo Rossillol‑‑Laruelle <beatussum@protonmail.com>
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -185,16 +185,16 @@ if (BENCHMARK_ENABLE_DOXYGEN)
+ if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
+ install(
+ DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/html/"
+- DESTINATION ${CMAKE_INSTALL_DOCDIR})
+- endif()
+-else()
+- if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
+- install(
+- DIRECTORY "${PROJECT_SOURCE_DIR}/docs/"
+- DESTINATION ${CMAKE_INSTALL_DOCDIR})
++ DESTINATION "${CMAKE_INSTALL_DOCDIR}/html/")
+ endif()
+ endif()
+
++if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_DOCS)
++ install(
++ DIRECTORY "${PROJECT_SOURCE_DIR}/docs/"
++ DESTINATION ${CMAKE_INSTALL_DOCDIR})
++endif()
++
+ set(CMAKE_INSTALL_PYTOOLSDIR "${CMAKE_INSTALL_DATADIR}/googlebenchmark/tools" CACHE PATH "")
+
+ if (BENCHMARK_ENABLE_INSTALL AND BENCHMARK_INSTALL_TOOLS)
diff --git a/dev-cpp/benchmark/metadata.xml b/dev-cpp/benchmark/metadata.xml
new file mode 100644
index 000000000000..d8aa942a8ea4
--- /dev/null
+++ b/dev-cpp/benchmark/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>beatussum@protonmail.com</email>
+ <name>Mattéo Rossillol‑‑Laruelle</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="libpfm">Enable <pkg>dev-libs/libpfm</pkg> support</flag>
+ <flag name="tools">Install some additional Python tools</flag>
+ </use>
+ <use lang="fr">
+ <flag name="libpfm">Activer le support de <pkg>dev-libs/libpfm</pkg>
+ </flag>
+ <flag name="tools">Installer des outils Python additionnels</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <name>Google</name>
+ <email>opensource@google.com</email>
+ </maintainer>
+ <bugs-to>https://github.com/google/benchmark/issues/</bugs-to>
+ <doc>https://github.com/google/benchmark/tree/master/docs/</doc>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>