Package libbenchmark: Specfile

%define oname benchmark

Name: lib%oname
Version: 1.7.1
Release: alt1.2

Summary: A library to benchmark code snippets

License: Apache-2.0
Group: Development/C++

# Source-url:
Packager: Vitaly Lipatov <>

Source: %oname-%version.tar
Provides: google-%name = %EVR

Patch: benchmark-1.5.4-extbuild.patch
Patch2000: libbenchmark-e2k.patch

BuildRequires(pre): rpm-macros-cmake

# Automatically added by buildreq on Sun Jul 11 2021
# optimized out: cmake-modules glibc-kernheaders-generic glibc-kernheaders-x86 libgmock-devel libsasl2-3 libstdc++-devel python3-base sh4
BuildRequires: cmake gcc-c++ libgtest-devel ctest ninja-build
# some tests query CPU info via /proc
BuildRequires: /proc

%ifarch %ix86
# XXX: i387 doubles have extended precision (mantissa is 80 bits), so results
# of calculations might differ from those obtained with strictly IEEE-754
# doubles (with 53-bit mantissa). This is why StatisticsTest.CV fails on i586
# (the problem can be reproduced on x86_64 by forcing i387 for floating point
# arithmetics with `-mfpmath=387` GCC flag).
# To avoid the problem force SSE on 32-bit x86:
%add_optflags -msse -mfpmath=sse

A library to benchmark code snippets, similar to unit tests.

Define a function that executes the code to measure, register it as a benchmark
function using the `BENCHMARK` macro, and ensure an appropriate `main` function
is available.

To run the benchmark, compile and link against the `benchmark` library
(libbenchmark.a/.so). If you followed the build steps above, this library will
be under the build directory you created.

%package devel
Summary: %summary development environment
Group: Development/C++
Requires: lib%oname = %EVR

%description devel
%summary development environment.

%setup -n %oname-%version
#%%patch -p1
%ifarch %e2k
%patch2000 -p1

%cmake \
  -G Ninja \
  -DGIT_VERSION=%version \
%ifarch %e2k

rm -rf %buildroot%_defaultdocdir

ctest --test-dir %_cmake__builddir --output-on-failure --force-new-ctest-process %_smp_mflags

%doc *.md

%files devel
%doc docs

* Mon Oct 16 2023 Alexey Sheplyakov <> 1.7.1-alt1.2
- NMU: fixed FTBFS on LoongArch (some tests need /proc).
  While at it worked around Statistics.CV test failure on i586.

* Wed May 03 2023 Ilya Kurdyukov <> 1.7.1-alt1.1
- e2k: patch update, werror off

* Tue May 02 2023 Alexey Shabalin <> 1.7.1-alt1
- new version 1.7.1

* Wed Sep 01 2021 Vitaly Lipatov <> 1.5.6-alt2
- disable devel-static packing, cleanup spec

* Thu Aug 19 2021 Vitaly Lipatov <> 1.5.6-alt1
- new version 1.5.6

* Sun Jul 11 2021 Fr. Br. George <> 1.5.5-alt2
- Separate static library
- Introduce tests

* Fri Jul 09 2021 Vitaly Lipatov <> 1.5.5-alt1
- new version 1.5.5 (with rpmrb script)

* Thu Jun 10 2021 Ilya Kurdyukov <> 1.5.2-alt2
- added patch for Elbrus
- corrected license

* Sun Sep 20 2020 Vitaly Lipatov <> 1.5.2-alt1
- new version 1.5.2 (with rpmrb script)

* Mon Aug 10 2020 Vitaly Lipatov <> 1.5.1-alt1
- new version 1.5.1 (with rpmrb script)

* Mon Jun 03 2019 Vitaly Lipatov <> 1.5.0-alt1
- new version 1.5.0 (with rpmrb script)

* Sun Feb 10 2019 Vitaly Lipatov <> 1.4.1-alt1
- initial build for ALT Sisyphus