gerbera: fix compilation with fmt 8.1

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2022-01-29 14:12:33 -08:00
parent 6e4bf0deaf
commit 1cda13b140
1 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,39 @@
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
---
src/util/logger.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)
--- 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__