From e7460f8faddfd9980bf204f3ecdc9e4fc34a73ce Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Fri, 18 Oct 2019 19:53:11 +0200 Subject: [PATCH] zerokernel unity build --- CMakeLists.txt | 3 +- include/config.h.in | 2 ++ src/visual/menu/CMakeLists.txt | 7 ++-- src/visual/menu/ZeroKernelUnity.cpp | 51 +++++++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 src/visual/menu/ZeroKernelUnity.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 36f006b2..f486d0d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,7 +70,7 @@ if (NOT ExternalDrawing) endif() -set(EnableUnityBuilds 1 CACHE BOOL "Enable Profiler") +set(EnableUnityBuilds 1 CACHE BOOL "Add support for CoTiRe unity builds") set(EnableProfiler 0 CACHE BOOL "Enable Profiler") set(EnableGUI 1 CACHE BOOL "Enable GUI") set(EnableIPC 1 CACHE BOOL "Enable IPC") @@ -82,6 +82,7 @@ set(EnableOnlineFeatures 0 CACHE BOOL "Enable online features (WIP)") set(EnableIRC 1 CACHE BOOL "Enable IRC for messaging and ignore-cathook") set(EnableLogging 1 CACHE BOOL "Enable logging to /tmp/") set(EnableClip 1 CACHE BOOL "Enable anti electron/chromium freezing") +set(Unity_ZeroKernel 1 CACHE BOOL "Use a unity build for zerokernel files") if(NOT EnableVisuals) set(EnableGUI 0) diff --git a/include/config.h.in b/include/config.h.in index bef4f08b..cc7ceb08 100755 --- a/include/config.h.in +++ b/include/config.h.in @@ -23,3 +23,5 @@ #define ENABLE_IMGUI_DRAWING @EnableImGuiDrawing@ #define EXTERNAL_DRAWING @ExternalDrawing@ #define ENFORCE_STREAM_SAFETY @Visuals_EnforceStreamSafety@ + +#define UNITY_ZEROKERNEL @Unity_ZeroKernel@ diff --git a/src/visual/menu/CMakeLists.txt b/src/visual/menu/CMakeLists.txt index eaf4a278..978f3751 100755 --- a/src/visual/menu/CMakeLists.txt +++ b/src/visual/menu/CMakeLists.txt @@ -1,6 +1,7 @@ -add_subdirectory(menu) - -set(files "${CMAKE_CURRENT_LIST_DIR}/GuiInterface.cpp") +if (NOT Unity_ZeroKernel) + add_subdirectory(menu) +endif() +set(files "${CMAKE_CURRENT_LIST_DIR}/GuiInterface.cpp" "${CMAKE_CURRENT_LIST_DIR}/ZeroKernelUnity.cpp") target_sources(cathook PRIVATE ${files}) list(REMOVE_ITEM ignore_files ${files}) set(ignore_files ${ignore_files} CACHE INTERNAL "") diff --git a/src/visual/menu/ZeroKernelUnity.cpp b/src/visual/menu/ZeroKernelUnity.cpp new file mode 100644 index 00000000..e0921033 --- /dev/null +++ b/src/visual/menu/ZeroKernelUnity.cpp @@ -0,0 +1,51 @@ +#include "config.h" +#if UNITY_ZEROKERNEL +#include "./menu/KeyValue.cpp" +#include "./menu/ObjectFactory.cpp" +#include "./menu/objects/container/Table.cpp" +#include "./menu/objects/container/TabSelection.cpp" +#include "./menu/objects/container/TabContainer.cpp" +#include "./menu/objects/container/ModalColorSelect.cpp" +#include "./menu/objects/container/ScrollableList.cpp" +#include "./menu/objects/container/ModalContainer.cpp" +#include "./menu/objects/container/Box.cpp" +#include "./menu/objects/container/Container.cpp" +#include "./menu/objects/container/TRow.cpp" +#include "./menu/objects/container/TData.cpp" +#include "./menu/objects/container/List.cpp" +#include "./menu/objects/container/ModalSelect.cpp" +#include "./menu/objects/container/LabeledObject.cpp" +#include "./menu/objects/Tooltip.cpp" +#include "./menu/objects/Option.cpp" +#include "./menu/objects/input/Select.cpp" +#include "./menu/objects/input/Checkbox.cpp" +#include "./menu/objects/input/TextInput.cpp" +#include "./menu/objects/input/ColorSelector.cpp" +#include "./menu/objects/input/Slider.cpp" +#include "./menu/objects/input/Spinner.cpp" +#include "./menu/objects/input/StringInput.cpp" +#include "./menu/objects/input/InputKey.cpp" +#include "./menu/objects/TabButton.cpp" +#include "./menu/Utility.cpp" +#include "./menu/tinyxml2.cpp" +#include "./menu/Menu.cpp" +#include "./menu/ModalBehavior.cpp" +#include "./menu/BaseMenuObject.cpp" +#include "./menu/Debug.cpp" +#include "./menu/Message.cpp" +#include "./menu/Text.cpp" +#include "./menu/wm/WindowManager.cpp" +#include "./menu/wm/WMWindow.cpp" +#include "./menu/wm/Task.cpp" +#include "./menu/wm/WindowHeader.cpp" +#include "./menu/wm/WindowCloseButton.cpp" +#include "./menu/wm/TaskBar.cpp" +#include "./menu/wm/WindowContainer.cpp" +#include "./menu/special/VariableListEntry.cpp" +#include "./menu/special/TreeListBaseEntry.cpp" +#include "./menu/special/ModalFactory.cpp" +#include "./menu/special/TreeListCollapsible.cpp" +#include "./menu/special/PlayerListController.cpp" +#include "./menu/special/SettingsManagerList.cpp" +#include "./menu/BoundingBox.cpp" +#endif