c16618959a
Fix the following build failure raised since bump of fmt to version
8.1.1 in commit ec7fd50d08
:
/home/peko/autobuild/instance-0/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/fmt/core.h:1728:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
formattable,
^~~~~~~~~~~
Fixes:
- http://autobuild.buildroot.org/results/009db44f83c3b02025c910ce4f190bd709c5ab49
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
45 lines
1.3 KiB
Diff
45 lines
1.3 KiB
Diff
From 82d84ac5e62c23e717198fc7b2ef190ff95e70d1 Mon Sep 17 00:00:00 2001
|
|
From: kyak <bas@bmail.ru>
|
|
Date: Wed, 12 Jan 2022 19:41:37 +0300
|
|
Subject: [PATCH] Fix for fmt > 8.0
|
|
|
|
[Retrieved from:
|
|
https://github.com/gerbera/gerbera/commit/82d84ac5e62c23e717198fc7b2ef190ff95e70d1]
|
|
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
---
|
|
src/util/logger.h | 15 +++++++++++++++
|
|
1 file changed, 15 insertions(+)
|
|
|
|
diff --git a/src/util/logger.h b/src/util/logger.h
|
|
index 58696e52f..ba64afa79 100644
|
|
--- a/src/util/logger.h
|
|
+++ b/src/util/logger.h
|
|
@@ -32,7 +32,9 @@
|
|
#ifndef __LOGGER_H__
|
|
#define __LOGGER_H__
|
|
|
|
+#include <fmt/format.h>
|
|
#include <spdlog/spdlog.h>
|
|
+#include <type_traits>
|
|
|
|
#define log_debug SPDLOG_DEBUG
|
|
#define log_info SPDLOG_INFO
|
|
@@ -40,4 +42,17 @@
|
|
#define log_error SPDLOG_ERROR
|
|
#define log_js SPDLOG_INFO
|
|
|
|
+#if FMT_VERSION >= 80100
|
|
+template <typename T>
|
|
+struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>>
|
|
+ : formatter<std::underlying_type_t<T>> {
|
|
+ template <typename FormatContext>
|
|
+ auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out())
|
|
+ {
|
|
+ return fmt::formatter<std::underlying_type_t<T>>::format(
|
|
+ static_cast<std::underlying_type_t<T>>(value), ctx);
|
|
+ }
|
|
+};
|
|
+#endif
|
|
+
|
|
#endif // __LOGGER_H__
|