mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-18 16:38:42 +01:00
Core/Build: Fixed dynamic mode build
Core can now be built in dynamic mode, enabling the hotswap system to be used. Hotswap works fine on Windows. Didnt work for me on Debian, the rebuild and reload process happens but the old version of the module remains for some reason. Cant figure it out right now
This commit is contained in:
@@ -25,11 +25,13 @@
|
||||
|
||||
using namespace boost::property_tree;
|
||||
|
||||
bool ConfigMgr::LoadInitial(std::string const& file, std::string& error)
|
||||
bool ConfigMgr::LoadInitial(std::string const& file, std::vector<std::string> args,
|
||||
std::string& error)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(_configLock);
|
||||
|
||||
_filename = file;
|
||||
_args = args;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -65,7 +67,7 @@ ConfigMgr* ConfigMgr::instance()
|
||||
|
||||
bool ConfigMgr::Reload(std::string& error)
|
||||
{
|
||||
return LoadInitial(_filename, error);
|
||||
return LoadInitial(_filename, std::move(_args), error);
|
||||
}
|
||||
|
||||
template<class T>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
#include <string>
|
||||
#include <list>
|
||||
#include <vector>
|
||||
#include <mutex>
|
||||
#include <boost/property_tree/ptree.hpp>
|
||||
|
||||
@@ -35,7 +36,8 @@ class TC_COMMON_API ConfigMgr
|
||||
|
||||
public:
|
||||
/// Method used only for loading main configuration files (authserver.conf and worldserver.conf)
|
||||
bool LoadInitial(std::string const& file, std::string& error);
|
||||
bool LoadInitial(std::string const& file, std::vector<std::string> args,
|
||||
std::string& error);
|
||||
|
||||
static ConfigMgr* instance();
|
||||
|
||||
@@ -47,10 +49,12 @@ public:
|
||||
float GetFloatDefault(std::string const& name, float def) const;
|
||||
|
||||
std::string const& GetFilename();
|
||||
std::vector<std::string> const& GetArguments() const { return _args; }
|
||||
std::list<std::string> GetKeysByString(std::string const& name);
|
||||
|
||||
private:
|
||||
std::string _filename;
|
||||
std::vector<std::string> _args;
|
||||
boost::property_tree::ptree _config;
|
||||
std::mutex _configLock;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
class BigNumber;
|
||||
|
||||
class WorldPacketCrypt : public PacketCrypt
|
||||
class TC_COMMON_API WorldPacketCrypt : public PacketCrypt
|
||||
{
|
||||
public:
|
||||
WorldPacketCrypt();
|
||||
|
||||
@@ -128,6 +128,12 @@
|
||||
# define TC_SHARED_API TC_API_IMPORT
|
||||
#endif
|
||||
|
||||
#ifdef TRINITY_API_EXPORT_IPC
|
||||
# define TC_IPC_API TC_API_EXPORT
|
||||
#else
|
||||
# define TC_IPC_API TC_API_IMPORT
|
||||
#endif
|
||||
|
||||
#ifdef TRINITY_API_EXPORT_GAME
|
||||
# define TC_GAME_API TC_API_EXPORT
|
||||
#else
|
||||
|
||||
@@ -36,12 +36,14 @@
|
||||
#include "GitRevision.h"
|
||||
#include "Util.h"
|
||||
#include <iostream>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <boost/program_options.hpp>
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/crypto.h>
|
||||
|
||||
using boost::asio::ip::tcp;
|
||||
using namespace boost::program_options;
|
||||
namespace fs = boost::filesystem;
|
||||
|
||||
#ifndef _TRINITY_REALM_CONFIG
|
||||
# define _TRINITY_REALM_CONFIG "authserver.conf"
|
||||
@@ -69,7 +71,7 @@ void StopDB();
|
||||
void SignalHandler(const boost::system::error_code& error, int signalNumber);
|
||||
void KeepDatabaseAliveHandler(const boost::system::error_code& error);
|
||||
void BanExpiryHandler(boost::system::error_code const& error);
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile, std::string& configService);
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile, std::string& configService);
|
||||
|
||||
boost::asio::io_service* _ioService;
|
||||
boost::asio::deadline_timer* _dbPingTimer;
|
||||
@@ -81,7 +83,7 @@ int main(int argc, char** argv)
|
||||
{
|
||||
signal(SIGABRT, &Trinity::AbortHandler);
|
||||
|
||||
std::string configFile = _TRINITY_REALM_CONFIG;
|
||||
auto configFile = fs::absolute(_TRINITY_REALM_CONFIG);
|
||||
std::string configService;
|
||||
auto vm = GetConsoleArguments(argc, argv, configFile, configService);
|
||||
// exit if help or version is enabled
|
||||
@@ -98,7 +100,9 @@ int main(int argc, char** argv)
|
||||
#endif
|
||||
|
||||
std::string configError;
|
||||
if (!sConfigMgr->LoadInitial(configFile, configError))
|
||||
if (!sConfigMgr->LoadInitial(configFile.generic_string(),
|
||||
std::vector<std::string>(argv, argv + argc),
|
||||
configError))
|
||||
{
|
||||
printf("Error in config file: %s\n", configError.c_str());
|
||||
return 1;
|
||||
@@ -109,7 +113,7 @@ int main(int argc, char** argv)
|
||||
|
||||
TC_LOG_INFO("server.authserver", "%s (authserver)", GitRevision::GetFullVersion());
|
||||
TC_LOG_INFO("server.authserver", "<Ctrl-C> to stop.\n");
|
||||
TC_LOG_INFO("server.authserver", "Using configuration file %s.", configFile.c_str());
|
||||
TC_LOG_INFO("server.authserver", "Using configuration file %s.", sConfigMgr->GetFilename().c_str());
|
||||
TC_LOG_INFO("server.authserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
|
||||
TC_LOG_INFO("server.authserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
|
||||
|
||||
@@ -286,13 +290,14 @@ void ServiceStatusWatcher(boost::system::error_code const& error)
|
||||
}
|
||||
#endif
|
||||
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile, std::string& configService)
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile, std::string& configService)
|
||||
{
|
||||
options_description all("Allowed options");
|
||||
all.add_options()
|
||||
("help,h", "print usage message")
|
||||
("version,v", "print version build info")
|
||||
("config,c", value<std::string>(&configFile)->default_value(_TRINITY_REALM_CONFIG), "use <arg> as configuration file")
|
||||
("config,c", value<fs::path>(&configFile)->default_value(fs::absolute(_TRINITY_REALM_CONFIG)),
|
||||
"use <arg> as configuration file")
|
||||
;
|
||||
#if PLATFORM == PLATFORM_WINDOWS
|
||||
options_description win("Windows platform specific options");
|
||||
|
||||
@@ -40,12 +40,14 @@
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <boost/program_options.hpp>
|
||||
#include <openssl/opensslv.h>
|
||||
#include <openssl/crypto.h>
|
||||
|
||||
using boost::asio::ip::tcp;
|
||||
using namespace boost::program_options;
|
||||
namespace fs = boost::filesystem;
|
||||
|
||||
#ifndef _TRINITY_BNET_CONFIG
|
||||
# define _TRINITY_BNET_CONFIG "bnetserver.conf"
|
||||
@@ -72,7 +74,7 @@ bool StartDB();
|
||||
void StopDB();
|
||||
void SignalHandler(const boost::system::error_code& error, int signalNumber);
|
||||
void KeepDatabaseAliveHandler(const boost::system::error_code& error);
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile);
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile);
|
||||
|
||||
boost::asio::io_service _ioService;
|
||||
boost::asio::deadline_timer _dbPingTimer(_ioService);
|
||||
@@ -80,14 +82,16 @@ uint32 _dbPingInterval;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
std::string configFile = _TRINITY_BNET_CONFIG;
|
||||
auto configFile = fs::absolute(_TRINITY_BNET_CONFIG);
|
||||
auto vm = GetConsoleArguments(argc, argv, configFile);
|
||||
// exit if help is enabled
|
||||
if (vm.count("help"))
|
||||
return 0;
|
||||
|
||||
std::string configError;
|
||||
if (!sConfigMgr->LoadInitial(configFile, configError))
|
||||
if (!sConfigMgr->LoadInitial(configFile.generic_string(),
|
||||
std::vector<std::string>(argv, argv + argc),
|
||||
configError))
|
||||
{
|
||||
printf("Error in config file: %s\n", configError.c_str());
|
||||
return 1;
|
||||
@@ -95,7 +99,7 @@ int main(int argc, char** argv)
|
||||
|
||||
TC_LOG_INFO("server.bnetserver", "%s (bnetserver)", GitRevision::GetFullVersion());
|
||||
TC_LOG_INFO("server.bnetserver", "<Ctrl-C> to stop.\n");
|
||||
TC_LOG_INFO("server.bnetserver", "Using configuration file %s.", configFile.c_str());
|
||||
TC_LOG_INFO("server.bnetserver", "Using configuration file %s.", sConfigMgr->GetFilename().c_str());
|
||||
TC_LOG_INFO("server.bnetserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
|
||||
TC_LOG_INFO("server.bnetserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
|
||||
|
||||
@@ -217,12 +221,13 @@ void KeepDatabaseAliveHandler(const boost::system::error_code& error)
|
||||
}
|
||||
}
|
||||
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile)
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile)
|
||||
{
|
||||
options_description all("Allowed options");
|
||||
all.add_options()
|
||||
("help,h", "print usage message")
|
||||
("config,c", value<std::string>(&configFile)->default_value(_TRINITY_BNET_CONFIG), "use <arg> as configuration file")
|
||||
("config,c", value<fs::path>(&configFile)->default_value(fs::absolute(_TRINITY_BNET_CONFIG)),
|
||||
"use <arg> as configuration file")
|
||||
;
|
||||
variables_map variablesMap;
|
||||
try
|
||||
|
||||
@@ -29,13 +29,13 @@ namespace Battlenet
|
||||
{
|
||||
namespace AccountMgr
|
||||
{
|
||||
AccountOpResult CreateBattlenetAccount(std::string email, std::string password);
|
||||
AccountOpResult ChangePassword(uint32 accountId, std::string newPassword);
|
||||
bool CheckPassword(uint32 accountId, std::string password);
|
||||
TC_GAME_API AccountOpResult CreateBattlenetAccount(std::string email, std::string password);
|
||||
TC_GAME_API AccountOpResult ChangePassword(uint32 accountId, std::string newPassword);
|
||||
TC_GAME_API bool CheckPassword(uint32 accountId, std::string password);
|
||||
|
||||
uint32 GetId(std::string const& username);
|
||||
bool GetName(uint32 accountId, std::string& name);
|
||||
uint32 GetIdByGameAccount(uint32 gameAccountId);
|
||||
TC_GAME_API uint32 GetId(std::string const& username);
|
||||
TC_GAME_API bool GetName(uint32 accountId, std::string& name);
|
||||
TC_GAME_API uint32 GetIdByGameAccount(uint32 gameAccountId);
|
||||
|
||||
std::string CalculateShaPassHash(std::string const& name, std::string const& password);
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ TC_GAME_API LFGDungeonEntry const* GetLFGDungeon(uint32 mapId, Difficulty diffic
|
||||
|
||||
uint32 GetDefaultMapLight(uint32 mapId);
|
||||
|
||||
std::set<uint32> const& GetPhasesForGroup(uint32 group);
|
||||
TC_GAME_API std::set<uint32> const& GetPhasesForGroup(uint32 group);
|
||||
|
||||
typedef std::unordered_multimap<uint32, SkillRaceClassInfoEntry const*> SkillRaceClassInfoMap;
|
||||
typedef std::pair<SkillRaceClassInfoMap::iterator, SkillRaceClassInfoMap::iterator> SkillRaceClassInfoBounds;
|
||||
|
||||
@@ -29,7 +29,7 @@ struct FlyByCamera
|
||||
|
||||
typedef std::vector<FlyByCamera> FlyByCameraCollection;
|
||||
|
||||
extern std::unordered_map<uint32, FlyByCameraCollection> sFlyByCameraStore;
|
||||
TC_GAME_API extern std::unordered_map<uint32, FlyByCameraCollection> sFlyByCameraStore;
|
||||
|
||||
void LoadM2Cameras(std::string const& dataPath);
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ class ZoneScript;
|
||||
|
||||
typedef TC_GAME_API std::unordered_map<Player*, UpdateData> UpdateDataMapType;
|
||||
|
||||
class Object
|
||||
class TC_GAME_API Object
|
||||
{
|
||||
public:
|
||||
virtual ~Object();
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace IPC
|
||||
{
|
||||
namespace BattlenetComm
|
||||
{
|
||||
class ServerManager
|
||||
class TC_GAME_API ServerManager
|
||||
{
|
||||
ServerManager() : _socket(nullptr) { }
|
||||
|
||||
|
||||
@@ -14,11 +14,17 @@ CollectSourceFiles(
|
||||
|
||||
GroupSources(${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
add_definitions(-DTRINITY_API_EXPORT_IPC)
|
||||
|
||||
add_library(ipc ${PRIVATE_SOURCES})
|
||||
|
||||
CollectIncludeDirectories(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
PUBLIC_INCLUDES)
|
||||
|
||||
target_include_directories(ipc
|
||||
PUBLIC
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${PUBLIC_INCLUDES}
|
||||
PRIVATE
|
||||
${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
@@ -32,3 +38,14 @@ set_target_properties(ipc
|
||||
FOLDER
|
||||
"server")
|
||||
|
||||
if( BUILD_SHARED_LIBS )
|
||||
if( UNIX )
|
||||
install(TARGETS ipc
|
||||
LIBRARY
|
||||
DESTINATION lib)
|
||||
elseif( WIN32 )
|
||||
install(TARGETS ipc
|
||||
RUNTIME
|
||||
DESTINATION "${CMAKE_INSTALL_PREFIX}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -67,14 +67,14 @@ namespace zmqpp
|
||||
class message;
|
||||
}
|
||||
|
||||
zmqpp::message& operator>>(zmqpp::message& msg, IPC::Header& header);
|
||||
zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::RealmHandle& realm);
|
||||
zmqpp::message& operator>>(zmqpp::message& msg, IPC::BattlenetComm::Header& header);
|
||||
zmqpp::message& operator>>(zmqpp::message& msg, IPC::BattlenetComm::ToonHandle& toonHandle);
|
||||
TC_IPC_API zmqpp::message& operator>>(zmqpp::message& msg, IPC::Header& header);
|
||||
TC_IPC_API zmqpp::message& operator>>(zmqpp::message& msg, Battlenet::RealmHandle& realm);
|
||||
TC_IPC_API zmqpp::message& operator>>(zmqpp::message& msg, IPC::BattlenetComm::Header& header);
|
||||
TC_IPC_API zmqpp::message& operator>>(zmqpp::message& msg, IPC::BattlenetComm::ToonHandle& toonHandle);
|
||||
|
||||
zmqpp::message& operator<<(zmqpp::message& msg, IPC::Header const& header);
|
||||
zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle const& realm);
|
||||
zmqpp::message& operator<<(zmqpp::message& msg, IPC::BattlenetComm::Header const& header);
|
||||
zmqpp::message& operator<<(zmqpp::message& msg, IPC::BattlenetComm::ToonHandle const& toonHandle);
|
||||
TC_IPC_API zmqpp::message& operator<<(zmqpp::message& msg, IPC::Header const& header);
|
||||
TC_IPC_API zmqpp::message& operator<<(zmqpp::message& msg, Battlenet::RealmHandle const& realm);
|
||||
TC_IPC_API zmqpp::message& operator<<(zmqpp::message& msg, IPC::BattlenetComm::Header const& header);
|
||||
TC_IPC_API zmqpp::message& operator<<(zmqpp::message& msg, IPC::BattlenetComm::ToonHandle const& toonHandle);
|
||||
|
||||
#endif // _COMMANDS_H
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
This class serves as a base for all long running tasks
|
||||
It is set up to terminate its running task upon receiving "kill" command
|
||||
*/
|
||||
class ZMQTask
|
||||
class TC_IPC_API ZMQTask
|
||||
{
|
||||
public:
|
||||
ZMQTask();
|
||||
|
||||
@@ -25,6 +25,12 @@ ZmqContext::~ZmqContext()
|
||||
{
|
||||
}
|
||||
|
||||
ZmqContext* ZmqContext::Instance()
|
||||
{
|
||||
static ZmqContext instance;
|
||||
return &instance;
|
||||
}
|
||||
|
||||
zmqpp::socket* ZmqContext::CreateNewSocket(zmqpp::socket_type type)
|
||||
{
|
||||
std::unique_lock<std::mutex> lock(_mutex);
|
||||
|
||||
@@ -18,22 +18,19 @@
|
||||
#ifndef __ZMQCONTEX_H
|
||||
#define __ZMQCONTEX_H
|
||||
|
||||
#include "Common.h"
|
||||
#include <zmqpp/zmqpp.hpp>
|
||||
#include <mutex>
|
||||
|
||||
/*
|
||||
* We need to serialize access to zmq context otherwise stuff blows up.
|
||||
*/
|
||||
class ZmqContext
|
||||
class TC_IPC_API ZmqContext
|
||||
{
|
||||
public:
|
||||
~ZmqContext();
|
||||
static ZmqContext* Instance();
|
||||
|
||||
static ZmqContext* Instance()
|
||||
{
|
||||
static ZmqContext instance;
|
||||
return &instance;
|
||||
}
|
||||
~ZmqContext();
|
||||
|
||||
zmqpp::socket* CreateNewSocket(zmqpp::socket_type);
|
||||
void Initialize();
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "ZMQTask.h"
|
||||
#include <zmqpp/zmqpp.hpp>
|
||||
|
||||
class ZmqListener : public ZMQTask
|
||||
class TC_IPC_API ZmqListener : public ZMQTask
|
||||
{
|
||||
/*
|
||||
* Read broadcasts from remote PUB socket, and forward them to
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
* Multiplexes zmq messages from many threads,
|
||||
* and then passes them to another socket.
|
||||
*/
|
||||
class ZmqMux : public ZMQTask
|
||||
class TC_IPC_API ZmqMux : public ZMQTask
|
||||
{
|
||||
public:
|
||||
ZmqMux(std::string from, std::string to);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
#include "ZMQTask.h"
|
||||
#include <zmqpp/zmqpp.hpp>
|
||||
|
||||
class ZmqWorker : public ZMQTask
|
||||
class TC_IPC_API ZmqWorker : public ZMQTask
|
||||
{
|
||||
public:
|
||||
ZmqWorker(std::string const& taskUri, std::string const& resUri);
|
||||
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
~ByteBufferPositionException() throw() { }
|
||||
};
|
||||
|
||||
class ByteBufferSourceException : public ByteBufferException
|
||||
class TC_SHARED_API ByteBufferSourceException : public ByteBufferException
|
||||
{
|
||||
public:
|
||||
ByteBufferSourceException(size_t pos, size_t size, size_t valueSize);
|
||||
|
||||
@@ -51,9 +51,11 @@
|
||||
#include <openssl/crypto.h>
|
||||
#include <boost/asio/io_service.hpp>
|
||||
#include <boost/asio/deadline_timer.hpp>
|
||||
#include <boost/filesystem/path.hpp>
|
||||
#include <boost/program_options.hpp>
|
||||
|
||||
using namespace boost::program_options;
|
||||
namespace fs = boost::filesystem;
|
||||
|
||||
#ifndef _TRINITY_CORE_CONFIG
|
||||
#define _TRINITY_CORE_CONFIG "worldserver.conf"
|
||||
@@ -91,14 +93,14 @@ void ClearOnlineAccounts();
|
||||
void ShutdownCLIThread(std::thread* cliThread);
|
||||
void ShutdownThreadPool(std::vector<std::thread>& threadPool);
|
||||
bool LoadRealmInfo();
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& cfg_file, std::string& cfg_service);
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile, std::string& cfg_service);
|
||||
|
||||
/// Launch the Trinity server
|
||||
extern int main(int argc, char** argv)
|
||||
{
|
||||
signal(SIGABRT, &Trinity::AbortHandler);
|
||||
|
||||
std::string configFile = _TRINITY_CORE_CONFIG;
|
||||
auto configFile = fs::absolute(_TRINITY_CORE_CONFIG);
|
||||
std::string configService;
|
||||
|
||||
auto vm = GetConsoleArguments(argc, argv, configFile, configService);
|
||||
@@ -116,7 +118,9 @@ extern int main(int argc, char** argv)
|
||||
#endif
|
||||
|
||||
std::string configError;
|
||||
if (!sConfigMgr->LoadInitial(configFile, configError))
|
||||
if (!sConfigMgr->LoadInitial(configFile.generic_string(),
|
||||
std::vector<std::string>(argv, argv + argc),
|
||||
configError))
|
||||
{
|
||||
printf("Error in config file: %s\n", configError.c_str());
|
||||
return 1;
|
||||
@@ -137,7 +141,7 @@ extern int main(int argc, char** argv)
|
||||
TC_LOG_INFO("server.worldserver", " \\/_/\\/_/ \\/_/\\/_/\\/_/\\/_/\\/__/ `/___/> \\");
|
||||
TC_LOG_INFO("server.worldserver", " C O R E /\\___/");
|
||||
TC_LOG_INFO("server.worldserver", "http://TrinityCore.org \\/__/\n");
|
||||
TC_LOG_INFO("server.worldserver", "Using configuration file %s.", configFile.c_str());
|
||||
TC_LOG_INFO("server.worldserver", "Using configuration file %s.", sConfigMgr->GetFilename().c_str());
|
||||
TC_LOG_INFO("server.worldserver", "Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));
|
||||
TC_LOG_INFO("server.worldserver", "Using Boost version: %i.%i.%i", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100);
|
||||
|
||||
@@ -590,7 +594,7 @@ void ClearOnlineAccounts()
|
||||
|
||||
/// @}
|
||||
|
||||
variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile, std::string& configService)
|
||||
variables_map GetConsoleArguments(int argc, char** argv, fs::path& configFile, std::string& configService)
|
||||
{
|
||||
// Silences warning about configService not be used if the OS is not Windows
|
||||
(void)configService;
|
||||
@@ -599,7 +603,8 @@ variables_map GetConsoleArguments(int argc, char** argv, std::string& configFile
|
||||
all.add_options()
|
||||
("help,h", "print usage message")
|
||||
("version,v", "print version build info")
|
||||
("config,c", value<std::string>(&configFile)->default_value(_TRINITY_CORE_CONFIG), "use <arg> as configuration file")
|
||||
("config,c", value<fs::path>(&configFile)->default_value(fs::absolute(_TRINITY_CORE_CONFIG)),
|
||||
"use <arg> as configuration file")
|
||||
;
|
||||
#ifdef _WIN32
|
||||
options_description win("Windows platform specific options");
|
||||
|
||||
Reference in New Issue
Block a user