Make hooks run in a unity build

This commit is contained in:
TotallyNotElite 2019-05-25 20:47:20 +02:00
parent c1a006de50
commit b98e64501c
5 changed files with 44 additions and 36 deletions

View File

@ -8,6 +8,8 @@ if (EnableCotire)
set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/external/cotire/CMake") set (CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/external/cotire/CMake")
cmake_policy(SET CMP0011 NEW) cmake_policy(SET CMP0011 NEW)
include(cotire) include(cotire)
file(GLOB_RECURSE ignore_files *.cpp)
set(ignore_files ${ignore_files} CACHE INTERNAL "")
endif() endif()
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
@ -27,6 +29,7 @@ set(Game "tf2" CACHE STRING "Target game")
set(GameValues "tf2;hl2dm;dab;tf2c;css;dynamic" CACHE INTERNAL "List of supported game types") set(GameValues "tf2;hl2dm;dab;tf2c;css;dynamic" CACHE INTERNAL "List of supported game types")
set_property(CACHE Game PROPERTY STRINGS ${GameValues}) set_property(CACHE Game PROPERTY STRINGS ${GameValues})
set(EnableUnityBuilds 1 CACHE BOOL "Enable Profiler")
set(EnableProfiler 0 CACHE BOOL "Enable Profiler") set(EnableProfiler 0 CACHE BOOL "Enable Profiler")
set(EnableVisuals 1 CACHE BOOL "Enable Visuals") set(EnableVisuals 1 CACHE BOOL "Enable Visuals")
set(ExternalDrawing 0 CACHE BOOL "External Visuals") set(ExternalDrawing 0 CACHE BOOL "External Visuals")
@ -161,7 +164,8 @@ add_subdirectory(modules)
if (EnableCotire) if (EnableCotire)
set_target_properties(cathook PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "${CMAKE_SOURCE_DIR}/include/common.hpp") set_target_properties(cathook PROPERTIES COTIRE_CXX_PREFIX_HEADER_INIT "${CMAKE_SOURCE_DIR}/include/common.hpp")
set_target_properties(cathook PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE) set_target_properties(cathook PROPERTIES COTIRE_ADD_UNITY_BUILD true)
set_source_files_properties(${ignore_files} PROPERTIES COTIRE_EXCLUDED true)
cotire(cathook) cotire(cathook)
endif() endif()

View File

@ -1,3 +1,4 @@
#pragma once
#include "config.h" #include "config.h"
#if ENABLE_IRC #if ENABLE_IRC
#include <string> #include <string>

View File

@ -1,27 +1,28 @@
target_sources(cathook PRIVATE set(files "${CMAKE_CURRENT_LIST_DIR}/CanPacket.cpp"
"${CMAKE_CURRENT_LIST_DIR}/CanPacket.cpp" "${CMAKE_CURRENT_LIST_DIR}/CreateMove.cpp"
"${CMAKE_CURRENT_LIST_DIR}/CreateMove.cpp" "${CMAKE_CURRENT_LIST_DIR}/DispatchUserMessage.cpp"
"${CMAKE_CURRENT_LIST_DIR}/DispatchUserMessage.cpp" "${CMAKE_CURRENT_LIST_DIR}/FireGameEvent.cpp"
"${CMAKE_CURRENT_LIST_DIR}/FireGameEvent.cpp" "${CMAKE_CURRENT_LIST_DIR}/GetFriendPersonaName.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GetFriendPersonaName.cpp" "${CMAKE_CURRENT_LIST_DIR}/GetUserCmd.cpp"
"${CMAKE_CURRENT_LIST_DIR}/GetUserCmd.cpp" "${CMAKE_CURRENT_LIST_DIR}/LevelInit.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LevelInit.cpp" "${CMAKE_CURRENT_LIST_DIR}/LevelShutdown.cpp"
"${CMAKE_CURRENT_LIST_DIR}/LevelShutdown.cpp" "${CMAKE_CURRENT_LIST_DIR}/nographics.cpp"
"${CMAKE_CURRENT_LIST_DIR}/nographics.cpp" "${CMAKE_CURRENT_LIST_DIR}/others.cpp"
"${CMAKE_CURRENT_LIST_DIR}/others.cpp" "${CMAKE_CURRENT_LIST_DIR}/Paint.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Paint.cpp" "${CMAKE_CURRENT_LIST_DIR}/PreDataUpdate.cpp"
"${CMAKE_CURRENT_LIST_DIR}/PreDataUpdate.cpp" "${CMAKE_CURRENT_LIST_DIR}/SendNetMsg.cpp"
"${CMAKE_CURRENT_LIST_DIR}/SendNetMsg.cpp" "${CMAKE_CURRENT_LIST_DIR}/Shutdown.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Shutdown.cpp" "${CMAKE_CURRENT_LIST_DIR}/FireEvent.cpp"
"${CMAKE_CURRENT_LIST_DIR}/FireEvent.cpp" "${CMAKE_CURRENT_LIST_DIR}/FireEventClientSide.cpp"
"${CMAKE_CURRENT_LIST_DIR}/FireEventClientSide.cpp" "${CMAKE_CURRENT_LIST_DIR}/IsPlayingTimeDemo.cpp"
"${CMAKE_CURRENT_LIST_DIR}/IsPlayingTimeDemo.cpp" "${CMAKE_CURRENT_LIST_DIR}/HookTools.cpp"
"${CMAKE_CURRENT_LIST_DIR}/HookTools.cpp" "${CMAKE_CURRENT_LIST_DIR}/SendDatagram.cpp")
"${CMAKE_CURRENT_LIST_DIR}/SendDatagram.cpp") target_sources(cathook PRIVATE ${files})
list(REMOVE_ITEM ignore_files ${files})
set(ignore_files ${ignore_files} CACHE INTERNAL "")
if(EnableVisuals) if(EnableVisuals)
add_subdirectory(visual) add_subdirectory(visual)
endif() else()
if(NOT EnableVisuals)
add_subdirectory(textmode) add_subdirectory(textmode)
endif() endif()

View File

@ -1,10 +1,12 @@
target_sources(cathook PRIVATE set(files "${CMAKE_CURRENT_LIST_DIR}/BeginFrame.cpp"
"${CMAKE_CURRENT_LIST_DIR}/BeginFrame.cpp" "${CMAKE_CURRENT_LIST_DIR}/DrawModelExecute.cpp"
"${CMAKE_CURRENT_LIST_DIR}/DrawModelExecute.cpp" "${CMAKE_CURRENT_LIST_DIR}/FrameStageNotify.cpp"
"${CMAKE_CURRENT_LIST_DIR}/FrameStageNotify.cpp" "${CMAKE_CURRENT_LIST_DIR}/OverrideView.cpp"
"${CMAKE_CURRENT_LIST_DIR}/OverrideView.cpp" "${CMAKE_CURRENT_LIST_DIR}/PaintTraverse.cpp"
"${CMAKE_CURRENT_LIST_DIR}/PaintTraverse.cpp" "${CMAKE_CURRENT_LIST_DIR}/RandomInt.cpp"
"${CMAKE_CURRENT_LIST_DIR}/RandomInt.cpp" "${CMAKE_CURRENT_LIST_DIR}/SDL_GL_SwapWindow.cpp"
"${CMAKE_CURRENT_LIST_DIR}/SDL_GL_SwapWindow.cpp" "${CMAKE_CURRENT_LIST_DIR}/SDL_PollEvent.cpp"
"${CMAKE_CURRENT_LIST_DIR}/SDL_PollEvent.cpp" "${CMAKE_CURRENT_LIST_DIR}/IN_KeyEvent.cpp")
"${CMAKE_CURRENT_LIST_DIR}/IN_KeyEvent.cpp") target_sources(cathook PRIVATE ${files})
list(REMOVE_ITEM ignore_files ${files})
set(ignore_files ${ignore_files} CACHE INTERNAL "")

View File

@ -11,7 +11,7 @@
#include <menu/menu/Menu.hpp> #include <menu/menu/Menu.hpp>
#include "clip.h" #include "clip.h"
static bool init{ false }; static bool swapwindow_init{ false };
static bool init_wminfo{ false }; static bool init_wminfo{ false };
static SDL_SysWMinfo wminfo{}; static SDL_SysWMinfo wminfo{};
@ -63,14 +63,14 @@ DEFINE_HOOKED_METHOD(SDL_GL_SwapWindow, void, SDL_Window *window)
#endif #endif
static int prev_width, prev_height; static int prev_width, prev_height;
PROF_SECTION(SWAPWINDOW_cathook); PROF_SECTION(SWAPWINDOW_cathook);
if (not init || draw::width != prev_width || draw::height != prev_height) if (not swapwindow_init || draw::width != prev_width || draw::height != prev_height)
{ {
prev_width = draw::width; prev_width = draw::width;
prev_height = draw::height; prev_height = draw::height;
draw::InitGL(); draw::InitGL();
if (zerokernel::Menu::instance) if (zerokernel::Menu::instance)
zerokernel::Menu::instance->resize(draw::width, draw::height); zerokernel::Menu::instance->resize(draw::width, draw::height);
init = true; swapwindow_init = true;
} }
draw::BeginGL(); draw::BeginGL();
DrawCache(); DrawCache();