aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-09-15 12:40:54 +0200
committerShauren <shauren.trinity@gmail.com>2024-09-15 12:40:54 +0200
commit052f2d0a81460ba484c27d05fe34673cf467c75e (patch)
treeca548c95ca2b21d5a5feb276e1bf2dc95029ca3d /src/server
parentfd0a7ba871060c895fdf701799dbf649ee697078 (diff)
Core/Common: Compile ServiceWin32 as part of common project instead of directly adding its source files to both server executables
Diffstat (limited to 'src/server')
-rw-r--r--src/server/CMakeLists.txt7
-rw-r--r--src/server/bnetserver/Main.cpp7
-rw-r--r--src/server/worldserver/Main.cpp11
3 files changed, 10 insertions, 15 deletions
diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
index 235ad973a40..ca39031f95f 100644
--- a/src/server/CMakeLists.txt
+++ b/src/server/CMakeLists.txt
@@ -8,13 +8,6 @@
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-if(WIN32)
- list(APPEND sources_windows
- ${CMAKE_SOURCE_DIR}/src/common/Platform/ServiceWin32.cpp
- ${CMAKE_SOURCE_DIR}/src/common/Platform/ServiceWin32.h
- )
-endif(WIN32)
-
add_subdirectory(database)
add_subdirectory(proto)
add_subdirectory(shared)
diff --git a/src/server/bnetserver/Main.cpp b/src/server/bnetserver/Main.cpp
index 31ccf0bfb77..cc28891ecef 100644
--- a/src/server/bnetserver/Main.cpp
+++ b/src/server/bnetserver/Main.cpp
@@ -111,12 +111,13 @@ int main(int argc, char** argv)
auto protobufHandle = Trinity::make_unique_ptr_with_deleter(&dummy, [](void*) { google::protobuf::ShutdownProtobufLibrary(); });
#if TRINITY_PLATFORM == TRINITY_PLATFORM_WINDOWS
+ 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();
#endif
std::string configError;
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index 9743580d74b..5f846d79f59 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -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;