aboutsummaryrefslogtreecommitdiff
path: root/zencore
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-10-28 11:33:47 +0200
committerMartin Ridgers <[email protected]>2021-11-18 15:24:39 +0100
commit4df0770ffe6fb03ed7b5248a7fadef935d856ad3 (patch)
treea79a51c4c3fccd7a99562a99edd7caa67ec88ee2 /zencore
parentFilled out ZEN_THIRDPARTY_ macros for Clang and GCC (diff)
downloadzen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.tar.xz
zen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.zip
Initial integration of Trace from UE5 via the --zentrace=y xmake config
Diffstat (limited to 'zencore')
-rw-r--r--zencore/include/zencore/trace.h49
-rw-r--r--zencore/trace.cpp32
-rw-r--r--zencore/xmake.lua1
3 files changed, 82 insertions, 0 deletions
diff --git a/zencore/include/zencore/trace.h b/zencore/include/zencore/trace.h
new file mode 100644
index 000000000..0bcb6e285
--- /dev/null
+++ b/zencore/include/zencore/trace.h
@@ -0,0 +1,49 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#pragma once
+
+#if ZEN_WITH_TRACE
+
+#define __UNREAL__ 0
+#define IS_MONOLITHIC 1
+#define PLATFORM_WINDOWS ZEN_PLATFORM_WINDOWS
+#define PLATFORM_UNIX ZEN_PLATFORM_LINUX
+#define PLATFORM_APPLE ZEN_PLATFORM_MACOS
+#define PLATFORM_ANDROID 0
+#define PLATFORM_HOLOLENS 0
+#define UE_BUILD_TEST 0
+#define UE_BUILD_SHIPPING 0
+
+ZEN_THIRD_PARTY_INCLUDES_START
+#if !defined(TRACE_IMPLEMENT)
+# define TRACE_IMPLEMENT 0
+#endif
+#include <trace.h>
+#undef TRACE_IMPLEMENT
+
+ZEN_THIRD_PARTY_INCLUDES_END
+#undef __UNREAL__
+#undef IS_MONOLITHIC
+#undef PLATFORM_WINDOWS
+#undef PLATFORM_UNIX
+#undef PLATFORM_APPLE
+#undef PLATFORM_ANDROID
+#undef PLATFORM_HOLOLENS
+#undef UE_BUILD_TEST
+#undef UE_BUILD_SHIPPING
+
+#define ZEN_TRACE_CPU(x) TRACE_CPU_SCOPE(x)
+
+enum class TraceType
+{
+ File,
+ Network,
+};
+
+void TraceInit(const char* HostOrPath, TraceType Type);
+
+#else
+
+#define ZEN_TRACE_CPU(x)
+
+#endif // ZEN_WITH_TRACE
diff --git a/zencore/trace.cpp b/zencore/trace.cpp
new file mode 100644
index 000000000..3042c80c8
--- /dev/null
+++ b/zencore/trace.cpp
@@ -0,0 +1,32 @@
+// Copyright Epic Games, Inc. All Rights Reserved.
+
+#if ZEN_WITH_TRACE
+
+#include <zencore/zencore.h>
+
+#define TRACE_IMPLEMENT 1
+#include <zencore/trace.h>
+//#undef TRACE_IMPLEMENT
+
+void TraceInit(const char* HostOrPath, TraceType Type)
+{
+ switch (Type)
+ {
+ case TraceType::Network:
+ trace::SendTo(HostOrPath);
+ break;
+
+ case TraceType::File:
+ trace::WriteTo(HostOrPath);
+ break;
+ }
+
+ trace::FInitializeDesc Desc = {
+ .bUseImportantCache = false,
+ };
+ trace::Initialize(Desc);
+
+ trace::ToggleChannel("cpu", true);
+}
+
+#endif // ZEN_WITH_TRACE
diff --git a/zencore/xmake.lua b/zencore/xmake.lua
index eade07700..90f070ddb 100644
--- a/zencore/xmake.lua
+++ b/zencore/xmake.lua
@@ -13,6 +13,7 @@ target('zencore')
add_links("oo2corelinux64")
add_syslinks("pthread")
end
+ add_options("zentrace")
add_packages(
"vcpkg::spdlog",
"vcpkg::fmt",