Luigi Baldoni
bacbb87c86
- Update to version 7.1.0 * Switched from Grisu3 to Dragonbox for the default floating-point formatting which gives the shortest decimal representation with round-trip guarantee and correct rounding. This makes {fmt} up to 20-30x faster than common implementations of std::ostringstream and sprintf on dtoa-benchmark and faster than double-conversion and Ryū. It is possible to get even better performance at the cost of larger binary size by compiling with the FMT_USE_FULL_CACHE_DRAGONBOX macro set to 1. * Added an experimental unsynchronized file output API which, together with format string compilation can give 5-9 times speed up compared to fprintf on common platforms. * Added a formatter for std::chrono::time_point<system_clock> * Added support for ranges with non-const begin/end to fmt::join * Added a memory_buffer::append overload that takes a range. * Improved handling of single code units in FMT_COMPILE. * Added dynamic width support to format string compilation. * Improved error reporting for unformattable types: now you'll get the type name directly in the error message instead of the note. * Added the make_args_checked function template that allows you to write formatting functions with compile-time format string checks and avoid binary code bloat. * Replaced snprintf fallback with a faster internal IEEE 754 float and double formatter for arbitrary precision. * Made format_to_n and formatted_size part of the core API. * Added fmt::format_to_n overload with format string compilation. * Added fmt::format_to overload that take text_style. * Made the # specifier emit trailing zeros in addition to the decimal point. * Changed the default floating point format to not include .0 for consistency with std::format and std::to_chars. It is possible to get the decimal point and trailing zero with the # specifier. * Fixed an issue with floating-point formatting that could result in addition of a non-significant trailing zero in rare cases e.g. 1.00e-34 instead of 1.0e-34. * Made fmt::to_string fallback on ostream insertion operator if the formatter specialization is not provided. * Added support for the append mode to the experimental file API and improved fcntl.h detection. * Fixed handling of types that have both an implicit conversion operator and an overloaded ostream insertion operator. * Fixed a slicing issue in an internal iterator type. * Fixed an issue in locale-specific integer formatting. * Fixed handling of exotic code unit types. * Improved FMT_ALWAYS_INLINE. * Improved documentation. * Added the FMT_REDUCE_INT_INSTANTIATIONS CMake option that reduces the binary code size at the cost of some integer formatting performance. This can be useful for extremely memory-constrained embedded systems. * Added the FMT_USE_INLINE_NAMESPACES macro to control usage of inline namespaces. * Improved build configuration. * Fixed various warnings and compilation issues. - Add fmt-7.1.0-LTO.patch OBS-URL: https://build.opensuse.org/request/show/844381 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=33
81 lines
2.1 KiB
RPMSpec
81 lines
2.1 KiB
RPMSpec
#
|
|
# spec file for package fmt
|
|
#
|
|
# Copyright (c) 2020 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define sover 7
|
|
Name: fmt
|
|
Version: 7.1.0
|
|
Release: 0
|
|
Summary: A formatting library for C++
|
|
License: MIT
|
|
URL: http://fmtlib.net/
|
|
Source0: https://github.com/fmtlib/fmt/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
|
|
Source1: baselibs.conf
|
|
# PATCH-FIX-UPSTREAM fmt-7.1.0-LTO.patch
|
|
Patch0: fmt-7.1.0-LTO.patch
|
|
BuildRequires: cmake
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: pkgconfig
|
|
|
|
%description
|
|
Fmt is a formatting library for C++. It can be used as an
|
|
alternative to (s)printf and IOStreams.
|
|
|
|
%package -n libfmt%{sover}
|
|
Summary: A formatting library for C++
|
|
|
|
%description -n libfmt%{sover}
|
|
Shared library for fmt, a formatting library for C++.
|
|
|
|
%package devel
|
|
Summary: Development files for fmt, a formatting library
|
|
Requires: libfmt%{sover} = %{version}
|
|
|
|
%description devel
|
|
Development files for fmt, a formatting library for C++.
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
%build
|
|
%cmake -DCMAKE_INSTALL_INCLUDEDIR:PATH=%{_includedir}
|
|
%make_jobs
|
|
|
|
%install
|
|
%cmake_install
|
|
|
|
%check
|
|
# path needs to be exported otherwise unit tests will fail
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir}
|
|
%ctest
|
|
|
|
%post -n libfmt%{sover} -p /sbin/ldconfig
|
|
%postun -n libfmt%{sover} -p /sbin/ldconfig
|
|
|
|
%files -n libfmt%{sover}
|
|
%license LICENSE.rst
|
|
%{_libdir}/libfmt.so.%{sover}*
|
|
|
|
%files devel
|
|
%doc ChangeLog.rst README.rst
|
|
%{_includedir}/%{name}
|
|
%{_libdir}/cmake/%{name}
|
|
%{_libdir}/libfmt.so
|
|
%{_libdir}/pkgconfig/%{name}.pc
|
|
|
|
%changelog
|