Merge pull request #7683 from liushuyu/fmt-8.1

logging: adapt to changes in fmt 8.1
This commit is contained in:
Morph 2022-01-09 18:29:59 -08:00 committed by GitHub
commit b3308830b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 3 deletions

View File

@ -169,7 +169,7 @@ macro(yuzu_find_packages)
set(REQUIRED_LIBS set(REQUIRED_LIBS
# Cmake Pkg Prefix Version Conan Pkg # Cmake Pkg Prefix Version Conan Pkg
"Catch2 2.13.7 catch2/2.13.7" "Catch2 2.13.7 catch2/2.13.7"
"fmt 8.0.1 fmt/8.0.1" "fmt 8.0.1 fmt/8.1.1"
"lz4 1.8 lz4/1.9.2" "lz4 1.8 lz4/1.9.2"
"nlohmann_json 3.8 nlohmann_json/3.8.0" "nlohmann_json 3.8 nlohmann_json/3.8.0"
"ZLIB 1.2 zlib/1.2.11" "ZLIB 1.2 zlib/1.2.11"

View File

@ -85,6 +85,7 @@ add_library(common STATIC
logging/backend.h logging/backend.h
logging/filter.cpp logging/filter.cpp
logging/filter.h logging/filter.h
logging/formatter.h
logging/log.h logging/log.h
logging/log_entry.h logging/log_entry.h
logging/text_formatter.cpp logging/text_formatter.cpp

View File

@ -0,0 +1,23 @@
// Copyright 2022 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include <type_traits>
#include <fmt/format.h>
// adapted from https://github.com/fmtlib/fmt/issues/2704
// a generic formatter for enum classes
#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

View File

@ -7,8 +7,9 @@
#include <algorithm> #include <algorithm>
#include <string_view> #include <string_view>
#include <fmt/core.h> #include <fmt/format.h>
#include "common/logging/formatter.h"
#include "common/logging/types.h" #include "common/logging/types.h"
namespace Common::Log { namespace Common::Log {

View File

@ -9,7 +9,7 @@
#include <string_view> #include <string_view>
#include <utility> #include <utility>
#include <fmt/format.h> #include "common/logging/formatter.h"
namespace Shader { namespace Shader {