fmt/fmt.spec
Luigi Baldoni bacbb87c86 Accepting request 844381 from home:alois:branches:devel:libraries:c_c++
- 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
2020-10-27 16:13:15 +00:00

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