diff options
author | Craig Andrews <candrews@gentoo.org> | 2021-06-22 10:41:54 -0400 |
---|---|---|
committer | Craig Andrews <candrews@gentoo.org> | 2021-06-22 10:44:25 -0400 |
commit | e88caaf664d63a663bc1843fc5742ca1c2c4215a (patch) | |
tree | 9c06fbed4c636d94e8d563f87f2214147c743a5a /dev-libs/libfmt | |
parent | sys-apps/man-pages: Bump to version 5.12 (diff) | |
download | gentoo-e88caaf664d63a663bc1843fc5742ca1c2c4215a.tar.gz gentoo-e88caaf664d63a663bc1843fc5742ca1c2c4215a.tar.bz2 gentoo-e88caaf664d63a663bc1843fc5742ca1c2c4215a.zip |
dev-libs/libfmt: do not use UDL types when UDL not used
Closes: https://bugs.gentoo.org/797406
See: https://github.com/fmtlib/fmt/pull/2376
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Craig Andrews <candrews@gentoo.org>
Diffstat (limited to 'dev-libs/libfmt')
-rw-r--r-- | dev-libs/libfmt/files/libfmt-8.0.0-no-udl-define.patch | 56 | ||||
-rw-r--r-- | dev-libs/libfmt/libfmt-8.0.0-r1.ebuild | 40 |
2 files changed, 96 insertions, 0 deletions
diff --git a/dev-libs/libfmt/files/libfmt-8.0.0-no-udl-define.patch b/dev-libs/libfmt/files/libfmt-8.0.0-no-udl-define.patch new file mode 100644 index 000000000000..83078fa7285c --- /dev/null +++ b/dev-libs/libfmt/files/libfmt-8.0.0-no-udl-define.patch @@ -0,0 +1,56 @@ +From ab89d342b5454528bd2b46e7f22c0311906f8ca2 Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" <Jason@zx2c4.com> +Date: Tue, 22 Jun 2021 14:34:33 +0200 +Subject: [PATCH] format: do not use udl_{arg,formatter} return types when UDL + is not in use + +The udl_{arg,formatter} structs are only defined when +FMT_USE_USER_DEFINED_LITERALS is set, so don't try to define things that +return that struct when it's not defined. +--- + include/fmt/format.h | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/include/fmt/format.h b/include/fmt/format.h +index 03ae1c961..92b0f0fc5 100644 +--- a/include/fmt/format.h ++++ b/include/fmt/format.h +@@ -2730,6 +2730,8 @@ extern template auto snprintf_float<long double>(long double value, + #endif // FMT_HEADER_ONLY + + FMT_END_DETAIL_NAMESPACE ++ ++#if FMT_USE_USER_DEFINED_LITERALS + inline namespace literals { + /** + \rst +@@ -2741,18 +2743,18 @@ inline namespace literals { + fmt::print("Elapsed time: {s:.2f} seconds", "s"_a=1.23); + \endrst + */ +-#if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS ++# if FMT_USE_NONTYPE_TEMPLATE_PARAMETERS + template <detail_exported::fixed_string Str> + constexpr auto operator""_a() + -> detail::udl_arg<remove_cvref_t<decltype(Str.data[0])>, + sizeof(Str.data) / sizeof(decltype(Str.data[0])), Str> { + return {}; + } +-#else ++# else + constexpr auto operator"" _a(const char* s, size_t) -> detail::udl_arg<char> { + return {s}; + } +-#endif ++# endif + + /** + \rst +@@ -2769,6 +2771,7 @@ constexpr auto operator"" _format(const char* s, size_t n) + return {{s, n}}; + } + } // namespace literals ++#endif // FMT_USE_USER_DEFINED_LITERALS + + template <typename Locale, FMT_ENABLE_IF(detail::is_locale<Locale>::value)> + inline auto vformat(const Locale& loc, string_view fmt, format_args args) diff --git a/dev-libs/libfmt/libfmt-8.0.0-r1.ebuild b/dev-libs/libfmt/libfmt-8.0.0-r1.ebuild new file mode 100644 index 000000000000..d489205c5abf --- /dev/null +++ b/dev-libs/libfmt/libfmt-8.0.0-r1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit cmake-multilib + +DESCRIPTION="Small, safe and fast formatting library" +HOMEPAGE="https://github.com/fmtlib/fmt" + +LICENSE="MIT" +IUSE="test" +SLOT="0/$(ver_cut 1)" + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://github.com/fmtlib/fmt.git" + inherit git-r3 +else + SRC_URI="https://github.com/fmtlib/fmt/archive/${PV}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" + S="${WORKDIR}/fmt-${PV}" +fi + +DEPEND="" +RDEPEND="" +RESTRICT="!test? ( test )" + +PATCHES=( + "${FILESDIR}/${P}-no-udl-define.patch" +) + +multilib_src_configure() { + local mycmakeargs=( + -DFMT_CMAKE_DIR="$(get_libdir)/cmake/fmt" + -DFMT_LIB_DIR="$(get_libdir)" + -DFMT_TEST=$(usex test) + ) + cmake_src_configure +} |