Core/Common: Compile ServiceWin32 as part of common project instead of directly adding its source files to both server executables

This commit is contained in:
Shauren
2024-09-15 12:40:54 +02:00
parent fd0a7ba871
commit 052f2d0a81
6 changed files with 107 additions and 120 deletions

View File

@@ -79,7 +79,7 @@ namespace fs = boost::filesystem;
#define _TRINITY_CORE_CONFIG_DIR "worldserver.conf.d"
#endif
#ifdef _WIN32
#if TRINITY_PLATFORM == TRINITY_PLATFORM_WINDOWS
#include "ServiceWin32.h"
#include <tchar.h>
TCHAR serviceName[] = _T("worldserver");
@@ -132,7 +132,7 @@ struct ShutdownCLIThread { void operator()(std::thread* cliThread) const; };
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile, fs::path& configDir, std::string& winServiceAction);
/// Launch the Trinity server
extern int main(int argc, char** argv)
int main(int argc, char** argv)
{
signal(SIGABRT, &Trinity::AbortHandler);
@@ -156,12 +156,13 @@ extern int main(int argc, char** argv)
auto protobufHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) { google::protobuf::ShutdownProtobufLibrary(); });
#ifdef _WIN32
Trinity::Service::Init(serviceLongName, serviceName, serviceDescription, &main, &m_ServiceStatus);
if (winServiceAction == "install")
return WinServiceInstall() ? 0 : 1;
return Trinity::Service::Install();
if (winServiceAction == "uninstall")
return WinServiceUninstall() ? 0 : 1;
return Trinity::Service::Uninstall();
if (winServiceAction == "run")
return WinServiceRun() ? 0 : 1;
return Trinity::Service::Run();
Optional<UINT> newTimerResolution;
boost::system::error_code dllError;