浏览代码

common/logging: Move Log::Entry declaration to a separate header

This reduces the load of requiring to include std::chrono in all files which include log.h
ameerj 4 年之前
父节点
当前提交
5daf3abe65

+ 3 - 0
src/audio_core/command_generator.cpp

@@ -2,13 +2,16 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <algorithm>
 #include <cmath>
 #include <numbers>
+
 #include "audio_core/algorithm/interpolate.h"
 #include "audio_core/command_generator.h"
 #include "audio_core/effect_context.h"
 #include "audio_core/mix_context.h"
 #include "audio_core/voice_context.h"
+#include "common/common_types.h"
 #include "core/memory.h"
 
 namespace AudioCore {

+ 2 - 0
src/audio_core/mix_context.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <algorithm>
+
 #include "audio_core/behavior_info.h"
 #include "audio_core/common.h"
 #include "audio_core/effect_context.h"

+ 2 - 0
src/audio_core/voice_context.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <algorithm>
+
 #include "audio_core/behavior_info.h"
 #include "audio_core/voice_context.h"
 #include "core/memory.h"

+ 1 - 0
src/common/CMakeLists.txt

@@ -79,6 +79,7 @@ add_library(common STATIC
     logging/filter.cpp
     logging/filter.h
     logging/log.h
+    logging/log_entry.h
     logging/text_formatter.cpp
     logging/text_formatter.h
     logging/types.h

+ 3 - 0
src/common/logging/backend.cpp

@@ -9,6 +9,8 @@
 #include <thread>
 #include <vector>
 
+#include <fmt/format.h>
+
 #ifdef _WIN32
 #include <windows.h> // For OutputDebugStringW
 #endif
@@ -22,6 +24,7 @@
 
 #include "common/logging/backend.h"
 #include "common/logging/log.h"
+#include "common/logging/log_entry.h"
 #include "common/logging/text_formatter.h"
 #include "common/settings.h"
 #ifdef _WIN32

+ 4 - 0
src/common/logging/log.h

@@ -4,7 +4,11 @@
 
 #pragma once
 
+#include <algorithm>
+#include <string_view>
+
 #include <fmt/format.h>
+
 #include "common/logging/types.h"
 
 namespace Common::Log {

+ 28 - 0
src/common/logging/log_entry.h

@@ -0,0 +1,28 @@
+// Copyright 2021 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <chrono>
+
+#include "common/logging/types.h"
+
+namespace Common::Log {
+
+/**
+ * A log entry. Log entries are store in a structured format to permit more varied output
+ * formatting on different frontends, as well as facilitating filtering and aggregation.
+ */
+struct Entry {
+    std::chrono::microseconds timestamp;
+    Class log_class{};
+    Level log_level{};
+    const char* filename = nullptr;
+    unsigned int line_num = 0;
+    std::string function;
+    std::string message;
+    bool final_entry = false;
+};
+
+} // namespace Common::Log

+ 1 - 0
src/common/logging/text_formatter.cpp

@@ -13,6 +13,7 @@
 #include "common/common_funcs.h"
 #include "common/logging/filter.h"
 #include "common/logging/log.h"
+#include "common/logging/log_entry.h"
 #include "common/logging/text_formatter.h"
 #include "common/string_util.h"
 

+ 0 - 17
src/common/logging/types.h

@@ -4,8 +4,6 @@
 
 #pragma once
 
-#include <chrono>
-
 #include "common/common_types.h"
 
 namespace Common::Log {
@@ -131,19 +129,4 @@ enum class Class : u8 {
     Count              ///< Total number of logging classes
 };
 
-/**
- * A log entry. Log entries are store in a structured format to permit more varied output
- * formatting on different frontends, as well as facilitating filtering and aggregation.
- */
-struct Entry {
-    std::chrono::microseconds timestamp;
-    Class log_class{};
-    Level log_level{};
-    const char* filename = nullptr;
-    unsigned int line_num = 0;
-    std::string function;
-    std::string message;
-    bool final_entry = false;
-};
-
 } // namespace Common::Log

+ 2 - 0
src/core/hle/kernel/k_auto_object_container.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <algorithm>
+
 #include "core/hle/kernel/k_auto_object_container.h"
 
 namespace Kernel {

+ 1 - 0
src/core/hle/service/lbl/lbl.cpp

@@ -2,6 +2,7 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <cmath>
 #include <memory>
 
 #include "common/logging/log.h"

+ 1 - 0
src/video_core/engines/maxwell_3d.h

@@ -6,6 +6,7 @@
 
 #include <array>
 #include <bitset>
+#include <cmath>
 #include <limits>
 #include <optional>
 #include <type_traits>