mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-25 15:07:28 +00:00
chore: organize build flags (#1371)
* chore: organize build flags * Remove ambiguous include path Don't be default incluyde bcrypt so you need to specify the folder. Allows pre-processor to find the correct file. * Revert settings * working f
This commit is contained in:
parent
4ecb6ae30e
commit
e54faa3820
@ -28,16 +28,13 @@ foreach(variable ${variables})
|
|||||||
# Set the variable
|
# Set the variable
|
||||||
set(${variable_name} ${variable_value})
|
set(${variable_name} ${variable_value})
|
||||||
|
|
||||||
# Add compiler definition
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${variable_name}=${variable_value}")
|
|
||||||
|
|
||||||
message(STATUS "Variable: ${variable_name} = ${variable_value}")
|
message(STATUS "Variable: ${variable_name} = ${variable_value}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Set the version
|
# Set the version
|
||||||
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
|
set(PROJECT_VERSION "\"${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}\"")
|
||||||
|
|
||||||
# Echo the version
|
# Echo the version
|
||||||
message(STATUS "Version: ${PROJECT_VERSION}")
|
message(STATUS "Version: ${PROJECT_VERSION}")
|
||||||
@ -53,19 +50,21 @@ set(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "" FORCE)
|
|||||||
# Disabled misleading indentation as DL_LinkedList from RakNet has a weird indent.
|
# Disabled misleading indentation as DL_LinkedList from RakNet has a weird indent.
|
||||||
# Disabled no-register
|
# Disabled no-register
|
||||||
# Disabled unknown pragmas because Linux doesn't understand Windows pragmas.
|
# Disabled unknown pragmas because Linux doesn't understand Windows pragmas.
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DPROJECT_VERSION=${PROJECT_VERSION}")
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(APPLE)
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17 -O2 -Wuninitialized -fPIC")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17 -O2 -Wuninitialized -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX17_ABI=0 -fPIC")
|
add_compile_definitions(_GLIBCXX_USE_CXX11_ABI=0 _GLIBCXX_USE_CXX17_ABI=0)
|
||||||
else()
|
if(NOT APPLE)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++17 -O2 -Wuninitialized -D_GLIBCXX_USE_CXX11_ABI=0 -D_GLIBCXX_USE_CXX17_ABI=0 -static-libgcc -fPIC -lstdc++fs")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -lstdc++fs")
|
||||||
endif()
|
endif()
|
||||||
if (__dynamic AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
||||||
|
if (${DYNAMIC} AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -rdynamic")
|
||||||
endif()
|
endif()
|
||||||
if (__ggdb)
|
|
||||||
|
if (${GGDB})
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -O2 -fPIC")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -O2 -fPIC")
|
||||||
elseif(MSVC)
|
elseif(MSVC)
|
||||||
# Skip warning for invalid conversion from size_t to uint32_t for all targets below for now
|
# Skip warning for invalid conversion from size_t to uint32_t for all targets below for now
|
||||||
@ -154,10 +153,7 @@ if (NOT EXISTS ${PROJECT_BINARY_DIR}/navmeshes)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Copy navmesh data on first build and extract it
|
# Copy navmesh data on first build and extract it
|
||||||
configure_file(
|
configure_file(${CMAKE_SOURCE_DIR}/resources/navmeshes.zip ${PROJECT_BINARY_DIR}/navmeshes.zip COPYONLY)
|
||||||
${CMAKE_SOURCE_DIR}/resources/navmeshes.zip ${PROJECT_BINARY_DIR}/navmeshes.zip
|
|
||||||
COPYONLY
|
|
||||||
)
|
|
||||||
|
|
||||||
file(ARCHIVE_EXTRACT INPUT ${PROJECT_BINARY_DIR}/navmeshes.zip DESTINATION ${PROJECT_BINARY_DIR}/navmeshes)
|
file(ARCHIVE_EXTRACT INPUT ${PROJECT_BINARY_DIR}/navmeshes.zip DESTINATION ${PROJECT_BINARY_DIR}/navmeshes)
|
||||||
file(REMOVE ${PROJECT_BINARY_DIR}/navmeshes.zip)
|
file(REMOVE ${PROJECT_BINARY_DIR}/navmeshes.zip)
|
||||||
@ -173,24 +169,14 @@ file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/migrations/dlu/)
|
|||||||
file(GLOB SQL_FILES ${CMAKE_SOURCE_DIR}/migrations/dlu/*.sql)
|
file(GLOB SQL_FILES ${CMAKE_SOURCE_DIR}/migrations/dlu/*.sql)
|
||||||
foreach(file ${SQL_FILES})
|
foreach(file ${SQL_FILES})
|
||||||
get_filename_component(file ${file} NAME)
|
get_filename_component(file ${file} NAME)
|
||||||
if (NOT EXISTS ${PROJECT_BINARY_DIR}/migrations/dlu/${file})
|
configure_file(${CMAKE_SOURCE_DIR}/migrations/dlu/${file} ${PROJECT_BINARY_DIR}/migrations/dlu/${file})
|
||||||
configure_file(
|
|
||||||
${CMAKE_SOURCE_DIR}/migrations/dlu/${file} ${PROJECT_BINARY_DIR}/migrations/dlu/${file}
|
|
||||||
COPYONLY
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/migrations/cdserver/)
|
file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/migrations/cdserver/)
|
||||||
file(GLOB SQL_FILES ${CMAKE_SOURCE_DIR}/migrations/cdserver/*.sql)
|
file(GLOB SQL_FILES ${CMAKE_SOURCE_DIR}/migrations/cdserver/*.sql)
|
||||||
foreach(file ${SQL_FILES})
|
foreach(file ${SQL_FILES})
|
||||||
get_filename_component(file ${file} NAME)
|
get_filename_component(file ${file} NAME)
|
||||||
if (NOT EXISTS ${PROJECT_BINARY_DIR}/migrations/cdserver/${file})
|
configure_file(${CMAKE_SOURCE_DIR}/migrations/cdserver/${file} ${PROJECT_BINARY_DIR}/migrations/cdserver/${file})
|
||||||
configure_file(
|
|
||||||
${CMAKE_SOURCE_DIR}/migrations/cdserver/${file} ${PROJECT_BINARY_DIR}/migrations/cdserver/${file}
|
|
||||||
COPYONLY
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Create our list of include directories
|
# Create our list of include directories
|
||||||
@ -198,7 +184,9 @@ set(INCLUDED_DIRECTORIES
|
|||||||
"dCommon"
|
"dCommon"
|
||||||
"dCommon/dClient"
|
"dCommon/dClient"
|
||||||
"dCommon/dEnums"
|
"dCommon/dEnums"
|
||||||
|
|
||||||
"dChatFilter"
|
"dChatFilter"
|
||||||
|
|
||||||
"dGame"
|
"dGame"
|
||||||
"dGame/dBehaviors"
|
"dGame/dBehaviors"
|
||||||
"dGame/dComponents"
|
"dGame/dComponents"
|
||||||
@ -209,10 +197,14 @@ set(INCLUDED_DIRECTORIES
|
|||||||
"dGame/dPropertyBehaviors"
|
"dGame/dPropertyBehaviors"
|
||||||
"dGame/dPropertyBehaviors/ControlBehaviorMessages"
|
"dGame/dPropertyBehaviors/ControlBehaviorMessages"
|
||||||
"dGame/dUtilities"
|
"dGame/dUtilities"
|
||||||
|
|
||||||
"dPhysics"
|
"dPhysics"
|
||||||
|
|
||||||
"dNavigation"
|
"dNavigation"
|
||||||
"dNavigation/dTerrain"
|
"dNavigation/dTerrain"
|
||||||
|
|
||||||
"dZoneManager"
|
"dZoneManager"
|
||||||
|
|
||||||
"dDatabase"
|
"dDatabase"
|
||||||
"dDatabase/CDClientDatabase"
|
"dDatabase/CDClientDatabase"
|
||||||
"dDatabase/CDClientDatabase/CDClientTables"
|
"dDatabase/CDClientDatabase/CDClientTables"
|
||||||
@ -220,7 +212,9 @@ set(INCLUDED_DIRECTORIES
|
|||||||
"dDatabase/GameDatabase/ITables"
|
"dDatabase/GameDatabase/ITables"
|
||||||
"dDatabase/GameDatabase/MySQL"
|
"dDatabase/GameDatabase/MySQL"
|
||||||
"dDatabase/GameDatabase/MySQL/Tables"
|
"dDatabase/GameDatabase/MySQL/Tables"
|
||||||
|
|
||||||
"dNet"
|
"dNet"
|
||||||
|
|
||||||
"dScripts"
|
"dScripts"
|
||||||
"dScripts/02_server"
|
"dScripts/02_server"
|
||||||
"dScripts/ai"
|
"dScripts/ai"
|
||||||
@ -304,28 +298,24 @@ set(INCLUDED_DIRECTORIES
|
|||||||
"tests/dCommonTests"
|
"tests/dCommonTests"
|
||||||
"tests/dGameTests"
|
"tests/dGameTests"
|
||||||
"tests/dGameTests/dComponentsTests"
|
"tests/dGameTests/dComponentsTests"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add system specfic includes for Apple, Windows and Other Unix OS' (including Linux)
|
# Add system specfic includes for Apple, Windows and Other Unix OS' (including Linux)
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
include_directories("/usr/local/include/")
|
include_directories("/usr/local/include/")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
set(INCLUDED_DIRECTORIES ${INCLUDED_DIRECTORIES} "thirdparty/libbcrypt/include")
|
|
||||||
elseif (UNIX)
|
|
||||||
set(INCLUDED_DIRECTORIES ${INCLUDED_DIRECTORIES} "thirdparty/libbcrypt")
|
|
||||||
set(INCLUDED_DIRECTORIES ${INCLUDED_DIRECTORIES} "thirdparty/libbcrypt/include/bcrypt")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Add binary directory as an include directory
|
|
||||||
include_directories(${PROJECT_BINARY_DIR})
|
|
||||||
|
|
||||||
# Actually include the directories from our list
|
# Actually include the directories from our list
|
||||||
foreach (dir ${INCLUDED_DIRECTORIES})
|
foreach (dir ${INCLUDED_DIRECTORIES})
|
||||||
include_directories(${PROJECT_SOURCE_DIR}/${dir})
|
include_directories(${PROJECT_SOURCE_DIR}/${dir})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
if (NOT WIN32)
|
||||||
|
include_directories("${PROJECT_SOURCE_DIR}/thirdparty/libbcrypt/include/bcrypt")
|
||||||
|
endif()
|
||||||
|
include_directories("${PROJECT_SOURCE_DIR}/thirdparty/libbcrypt/include")
|
||||||
|
|
||||||
|
|
||||||
# Add linking directories:
|
# Add linking directories:
|
||||||
link_directories(${PROJECT_BINARY_DIR})
|
link_directories(${PROJECT_BINARY_DIR})
|
||||||
|
|
||||||
@ -381,7 +371,7 @@ set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "mariadbConnCpp" "mag
|
|||||||
if (UNIX)
|
if (UNIX)
|
||||||
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} "dl" "pthread")
|
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} "dl" "pthread")
|
||||||
|
|
||||||
if (NOT APPLE AND __include_backtrace__)
|
if (NOT APPLE AND ${INCLUDE_BACKTRACE})
|
||||||
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} "backtrace")
|
set(COMMON_LIBRARIES ${COMMON_LIBRARIES} "backtrace")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -419,6 +409,6 @@ target_precompile_headers(
|
|||||||
"$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_SOURCE_DIR}/thirdparty/tinyxml2/tinyxml2.h>"
|
"$<$<COMPILE_LANGUAGE:CXX>:${PROJECT_SOURCE_DIR}/thirdparty/tinyxml2/tinyxml2.h>"
|
||||||
)
|
)
|
||||||
|
|
||||||
if (${__enable_testing__} MATCHES "1")
|
if (${ENABLE_TESTING})
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,22 +1,32 @@
|
|||||||
PROJECT_VERSION_MAJOR=1
|
PROJECT_VERSION_MAJOR=1
|
||||||
PROJECT_VERSION_MINOR=1
|
PROJECT_VERSION_MINOR=1
|
||||||
PROJECT_VERSION_PATCH=1
|
PROJECT_VERSION_PATCH=1
|
||||||
# LICENSE
|
|
||||||
LICENSE=AGPL-3.0
|
|
||||||
# Debugging
|
# Debugging
|
||||||
# Set __dynamic to 1 to enable the -rdynamic flag for the linker, yielding some symbols in crashlogs.
|
# Set DYNAMIC to 1 to enable the -rdynamic flag for the linker, yielding some symbols in crashlogs.
|
||||||
__dynamic=1
|
DYNAMIC=1
|
||||||
# Set __ggdb to 1 to enable the -ggdb flag for the linker, including more debug info.
|
|
||||||
# __ggdb=1
|
# Set GGDB to 1 to enable the -ggdb flag for the linker, including more debug info.
|
||||||
# Set __include_backtrace__ to 1 to includes the backtrace library for better crashlogs.
|
# Do note, changing this will re-build the whole server
|
||||||
# __include_backtrace__=1
|
GGDB=0
|
||||||
# Set __compile_backtrace__ to 1 to compile the backtrace library instead of using system libraries.
|
|
||||||
# __compile_backtrace__=1
|
# Set INCLUDE_BACKTRACE to 1 to includes the backtrace library for better crashlogs.
|
||||||
|
# Do note, changing this will re-build the whole server
|
||||||
|
INCLUDE_BACKTRACE=0
|
||||||
|
|
||||||
|
# Set COMPILE_BACKTRACE to 1 to compile the backtrace library instead of using system libraries.
|
||||||
|
# Do note, changing this will re-build the whole server
|
||||||
|
COMPILE_BACKTRACE=0
|
||||||
|
|
||||||
# Set to the number of jobs (make -j equivalent) to compile the mariadbconn files with.
|
# Set to the number of jobs (make -j equivalent) to compile the mariadbconn files with.
|
||||||
__maria_db_connector_compile_jobs__=1
|
MARIADB_CONNECTOR_COMPILE_JOBS=1
|
||||||
|
|
||||||
# When set to 1 and uncommented, compiling and linking testing folders and libraries will be done.
|
# When set to 1 and uncommented, compiling and linking testing folders and libraries will be done.
|
||||||
__enable_testing__=1
|
ENABLE_TESTING=1
|
||||||
|
|
||||||
# The path to OpenSSL. Change this if your OpenSSL install path is different than the default.
|
# The path to OpenSSL. Change this if your OpenSSL install path is different than the default.
|
||||||
OPENSSL_ROOT_DIR=/usr/local/opt/openssl@3/
|
OPENSSL_ROOT_DIR=/usr/local/opt/openssl@3/
|
||||||
# Uncomment the below line to cache the entire CDClient into memory
|
|
||||||
# CDCLIENT_CACHE_ALL=1
|
# Whether or not to cache the entire CDClient Database into memory instead of lazy loading.
|
||||||
|
# 0 means to lazy load, all other values mean load the entire database.
|
||||||
|
CDCLIENT_CACHE_ALL=0
|
||||||
|
@ -52,7 +52,7 @@ int main(int argc, char** argv) {
|
|||||||
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
||||||
|
|
||||||
LOG("Starting Auth server...");
|
LOG("Starting Auth server...");
|
||||||
LOG("Version: %i.%i", PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR);
|
LOG("Version: %s", PROJECT_VERSION);
|
||||||
LOG("Compiled on: %s", __TIMESTAMP__);
|
LOG("Compiled on: %s", __TIMESTAMP__);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
add_executable(AuthServer "AuthServer.cpp")
|
add_executable(AuthServer "AuthServer.cpp")
|
||||||
target_link_libraries(AuthServer ${COMMON_LIBRARIES})
|
target_link_libraries(AuthServer ${COMMON_LIBRARIES})
|
||||||
|
add_compile_definitions(AuthServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")
|
||||||
|
@ -6,6 +6,7 @@ set(DCHATSERVER_SOURCES
|
|||||||
|
|
||||||
add_executable(ChatServer "ChatServer.cpp")
|
add_executable(ChatServer "ChatServer.cpp")
|
||||||
add_library(dChatServer ${DCHATSERVER_SOURCES})
|
add_library(dChatServer ${DCHATSERVER_SOURCES})
|
||||||
|
add_compile_definitions(ChatServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")
|
||||||
|
|
||||||
target_link_libraries(dChatServer ${COMMON_LIBRARIES} dChatFilter)
|
target_link_libraries(dChatServer ${COMMON_LIBRARIES} dChatFilter)
|
||||||
target_link_libraries(ChatServer ${COMMON_LIBRARIES} dChatFilter dChatServer)
|
target_link_libraries(ChatServer ${COMMON_LIBRARIES} dChatFilter dChatServer)
|
||||||
|
@ -58,7 +58,7 @@ int main(int argc, char** argv) {
|
|||||||
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
||||||
|
|
||||||
LOG("Starting Chat server...");
|
LOG("Starting Chat server...");
|
||||||
LOG("Version: %i.%i", PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR);
|
LOG("Version: %s", PROJECT_VERSION);
|
||||||
LOG("Compiled on: %s", __TIMESTAMP__);
|
LOG("Compiled on: %s", __TIMESTAMP__);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -71,7 +71,7 @@ LONG CALLBACK unhandled_handler(EXCEPTION_POINTERS* e) {
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
#if defined(__include_backtrace__)
|
#if defined(INCLUDE_BACKTRACE)
|
||||||
#include <backtrace.h>
|
#include <backtrace.h>
|
||||||
|
|
||||||
#include <backtrace-supported.h>
|
#include <backtrace-supported.h>
|
||||||
@ -122,7 +122,7 @@ void CatchUnhandled(int sig) {
|
|||||||
LOG("Caught exception: '%s'", e.what());
|
LOG("Caught exception: '%s'", e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __include_backtrace__
|
#ifndef INCLUDE_BACKTRACE
|
||||||
|
|
||||||
std::string fileName = Diagnostics::GetOutDirectory() + "crash_" + Diagnostics::GetProcessName() + "_" + std::to_string(getpid()) + ".log";
|
std::string fileName = Diagnostics::GetOutDirectory() + "crash_" + Diagnostics::GetProcessName() + "_" + std::to_string(getpid()) + ".log";
|
||||||
LOG("Encountered signal %i, creating crash dump %s", sig, fileName.c_str());
|
LOG("Encountered signal %i, creating crash dump %s", sig, fileName.c_str());
|
||||||
@ -174,7 +174,7 @@ void CatchUnhandled(int sig) {
|
|||||||
backtrace_symbols_fd(array, size, STDOUT_FILENO);
|
backtrace_symbols_fd(array, size, STDOUT_FILENO);
|
||||||
# endif // defined(__GNUG__)
|
# endif // defined(__GNUG__)
|
||||||
|
|
||||||
#else // __include_backtrace__
|
#else // INCLUDE_BACKTRACE
|
||||||
|
|
||||||
struct backtrace_state* state = backtrace_create_state(
|
struct backtrace_state* state = backtrace_create_state(
|
||||||
Diagnostics::GetProcessFileName().c_str(),
|
Diagnostics::GetProcessFileName().c_str(),
|
||||||
@ -185,7 +185,7 @@ void CatchUnhandled(int sig) {
|
|||||||
struct bt_ctx ctx = { state, 0 };
|
struct bt_ctx ctx = { state, 0 };
|
||||||
Bt(state);
|
Bt(state);
|
||||||
|
|
||||||
#endif // __include_backtrace__
|
#endif // INCLUDE_BACKTRACE
|
||||||
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
class dServer;
|
class dServer;
|
||||||
@ -28,4 +29,5 @@ namespace Game {
|
|||||||
extern EntityManager* entityManager;
|
extern EntityManager* entityManager;
|
||||||
extern dZoneManager* zoneManager;
|
extern dZoneManager* zoneManager;
|
||||||
extern PlayerContainer playerContainer;
|
extern PlayerContainer playerContainer;
|
||||||
|
extern std::string projectVersion;
|
||||||
}
|
}
|
||||||
|
@ -39,9 +39,11 @@
|
|||||||
#include "CDRailActivatorComponent.h"
|
#include "CDRailActivatorComponent.h"
|
||||||
#include "CDRewardCodesTable.h"
|
#include "CDRewardCodesTable.h"
|
||||||
|
|
||||||
|
#ifndef CDCLIENT_CACHE_ALL
|
||||||
// Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory.
|
// Uncomment this to cache the full cdclient database into memory. This will make the server load faster, but will use more memory.
|
||||||
// A vanilla CDClient takes about 46MB of memory + the regular world data.
|
// A vanilla CDClient takes about 46MB of memory + the regular world data.
|
||||||
// #define CDCLIENT_CACHE_ALL
|
// # define CDCLIENT_CACHE_ALL
|
||||||
|
#endif // CDCLIENT_CACHE_ALL
|
||||||
|
|
||||||
#ifdef CDCLIENT_CACHE_ALL
|
#ifdef CDCLIENT_CACHE_ALL
|
||||||
#define CDCLIENT_DONT_CACHE_TABLE(x) x
|
#define CDCLIENT_DONT_CACHE_TABLE(x) x
|
||||||
|
@ -14,3 +14,7 @@ endforeach()
|
|||||||
|
|
||||||
add_library(dDatabase STATIC ${DDATABASE_SOURCES})
|
add_library(dDatabase STATIC ${DDATABASE_SOURCES})
|
||||||
target_link_libraries(dDatabase sqlite3 mariadbConnCpp)
|
target_link_libraries(dDatabase sqlite3 mariadbConnCpp)
|
||||||
|
|
||||||
|
if (${CDCLIENT_CACHE_ALL})
|
||||||
|
add_compile_definitions(dDatabase CDCLIENT_CACHE_ALL=${CDCLIENT_CACHE_ALL})
|
||||||
|
endif()
|
||||||
|
@ -525,12 +525,12 @@ std::string VanityUtilities::ParseMarkdown(const std::string& file) {
|
|||||||
#endif
|
#endif
|
||||||
// Replace "__TIMESTAMP__" with the __TIMESTAMP__
|
// Replace "__TIMESTAMP__" with the __TIMESTAMP__
|
||||||
GeneralUtils::ReplaceInString(line, "__TIMESTAMP__", __TIMESTAMP__);
|
GeneralUtils::ReplaceInString(line, "__TIMESTAMP__", __TIMESTAMP__);
|
||||||
// Replace "__VERSION__" wit'h the PROJECT_VERSION
|
// Replace "__VERSION__" with the PROJECT_VERSION
|
||||||
GeneralUtils::ReplaceInString(line, "__VERSION__", STRINGIFY(PROJECT_VERSION));
|
GeneralUtils::ReplaceInString(line, "__VERSION__", Game::projectVersion);
|
||||||
// Replace "__SOURCE__" with SOURCE
|
// Replace "__SOURCE__" with SOURCE
|
||||||
GeneralUtils::ReplaceInString(line, "__SOURCE__", Game::config->GetValue("source"));
|
GeneralUtils::ReplaceInString(line, "__SOURCE__", Game::config->GetValue("source"));
|
||||||
// Replace "__LICENSE__" with LICENSE
|
// Replace "__LICENSE__" with LICENSE
|
||||||
GeneralUtils::ReplaceInString(line, "__LICENSE__", STRINGIFY(LICENSE));
|
GeneralUtils::ReplaceInString(line, "__LICENSE__", "AGPL-3.0");
|
||||||
|
|
||||||
if (line.find("##") != std::string::npos) {
|
if (line.find("##") != std::string::npos) {
|
||||||
// Add "<font size='18' color='#000000'>" before the header
|
// Add "<font size='18' color='#000000'>" before the header
|
||||||
|
@ -6,6 +6,7 @@ set(DMASTERSERVER_SOURCES
|
|||||||
|
|
||||||
add_library(dMasterServer ${DMASTERSERVER_SOURCES})
|
add_library(dMasterServer ${DMASTERSERVER_SOURCES})
|
||||||
add_executable(MasterServer "MasterServer.cpp")
|
add_executable(MasterServer "MasterServer.cpp")
|
||||||
|
add_compile_definitions(MasterServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")
|
||||||
|
|
||||||
target_link_libraries(dMasterServer ${COMMON_LIBRARIES})
|
target_link_libraries(dMasterServer ${COMMON_LIBRARIES})
|
||||||
target_link_libraries(MasterServer ${COMMON_LIBRARIES} dMasterServer)
|
target_link_libraries(MasterServer ${COMMON_LIBRARIES} dMasterServer)
|
||||||
|
@ -7,11 +7,7 @@
|
|||||||
#include <thread>
|
#include <thread>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <bcrypt/BCrypt.hpp>
|
#include <bcrypt/BCrypt.hpp>
|
||||||
#else
|
|
||||||
#include <bcrypt.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <csignal>
|
#include <csignal>
|
||||||
|
|
||||||
@ -125,7 +121,7 @@ int main(int argc, char** argv) {
|
|||||||
LOG("Using net version %s", Game::config->GetValue("client_net_version").c_str());
|
LOG("Using net version %s", Game::config->GetValue("client_net_version").c_str());
|
||||||
|
|
||||||
LOG("Starting Master server...");
|
LOG("Starting Master server...");
|
||||||
LOG("Version: %i.%i", PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR);
|
LOG("Version: %s", PROJECT_VERSION);
|
||||||
LOG("Compiled on: %s", __TIMESTAMP__);
|
LOG("Compiled on: %s", __TIMESTAMP__);
|
||||||
|
|
||||||
//Connect to the MySQL Database
|
//Connect to the MySQL Database
|
||||||
|
@ -11,11 +11,7 @@
|
|||||||
#include "SHA512.h"
|
#include "SHA512.h"
|
||||||
#include "GeneralUtils.h"
|
#include "GeneralUtils.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#include <bcrypt/BCrypt.hpp>
|
#include <bcrypt/BCrypt.hpp>
|
||||||
#else
|
|
||||||
#include <bcrypt.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <BitStream.h>
|
#include <BitStream.h>
|
||||||
#include <future>
|
#include <future>
|
||||||
|
@ -5,6 +5,7 @@ set(DWORLDSERVER_SOURCES
|
|||||||
|
|
||||||
add_library(dWorldServer ${DWORLDSERVER_SOURCES})
|
add_library(dWorldServer ${DWORLDSERVER_SOURCES})
|
||||||
add_executable(WorldServer "WorldServer.cpp")
|
add_executable(WorldServer "WorldServer.cpp")
|
||||||
|
add_compile_definitions(WorldServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")
|
||||||
|
|
||||||
target_link_libraries(dWorldServer ${COMMON_LIBRARIES})
|
target_link_libraries(dWorldServer ${COMMON_LIBRARIES})
|
||||||
target_link_libraries(WorldServer ${COMMON_LIBRARIES} dChatFilter dGame dZoneManager dPhysics Detour Recast tinyxml2 dWorldServer dNavigation)
|
target_link_libraries(WorldServer ${COMMON_LIBRARIES} dChatFilter dGame dZoneManager dPhysics Detour Recast tinyxml2 dWorldServer dNavigation)
|
||||||
|
@ -91,6 +91,7 @@ namespace Game {
|
|||||||
bool shouldShutdown = false;
|
bool shouldShutdown = false;
|
||||||
EntityManager* entityManager = nullptr;
|
EntityManager* entityManager = nullptr;
|
||||||
dZoneManager* zoneManager = nullptr;
|
dZoneManager* zoneManager = nullptr;
|
||||||
|
std::string projectVersion = PROJECT_VERSION;
|
||||||
} // namespace Game
|
} // namespace Game
|
||||||
|
|
||||||
bool chatDisabled = false;
|
bool chatDisabled = false;
|
||||||
@ -152,7 +153,7 @@ int main(int argc, char** argv) {
|
|||||||
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
Game::logger->SetLogDebugStatements(Game::config->GetValue("log_debug_statements") == "1");
|
||||||
|
|
||||||
LOG("Starting World server...");
|
LOG("Starting World server...");
|
||||||
LOG("Version: %i.%i", PROJECT_VERSION_MAJOR, PROJECT_VERSION_MINOR);
|
LOG("Version: %s", Game::projectVersion.c_str());
|
||||||
LOG("Compiled on: %s", __TIMESTAMP__);
|
LOG("Compiled on: %s", __TIMESTAMP__);
|
||||||
|
|
||||||
if (Game::config->GetValue("disable_chat") == "1") chatDisabled = true;
|
if (Game::config->GetValue("disable_chat") == "1") chatDisabled = true;
|
||||||
|
@ -33,7 +33,7 @@ ARG BUILD_THREADS=1
|
|||||||
ARG BUILD_VERSION=171022
|
ARG BUILD_VERSION=171022
|
||||||
|
|
||||||
RUN echo "Build server"
|
RUN echo "Build server"
|
||||||
RUN sed -i -e "s/__maria_db_connector_compile_jobs__=.*/__maria_db_connector_compile_jobs__=${BUILD_THREADS}/g" CMakeVariables.txt
|
RUN sed -i -e "s/MARIADB_CONNECTOR_COMPILE_JOBS=.*/MARIADB_CONNECTOR_COMPILE_JOBS=${BUILD_THREADS}/g" CMakeVariables.txt
|
||||||
RUN mkdir -p cmake_build
|
RUN mkdir -p cmake_build
|
||||||
RUN cd cmake_build && \
|
RUN cd cmake_build && \
|
||||||
cmake .. -DCMAKE_BUILD_RPATH_USE_ORIGIN=TRUE && \
|
cmake .. -DCMAKE_BUILD_RPATH_USE_ORIGIN=TRUE && \
|
||||||
|
@ -11,4 +11,5 @@ namespace Game {
|
|||||||
AssetManager* assetManager = nullptr;
|
AssetManager* assetManager = nullptr;
|
||||||
SystemAddress chatSysAddr;
|
SystemAddress chatSysAddr;
|
||||||
EntityManager* entityManager = nullptr;
|
EntityManager* entityManager = nullptr;
|
||||||
|
std::string projectVersion;
|
||||||
}
|
}
|
||||||
|
10
thirdparty/CMakeLists.txt
vendored
10
thirdparty/CMakeLists.txt
vendored
@ -11,11 +11,17 @@ file(
|
|||||||
GLOB SOURCES_LIBBCRYPT
|
GLOB SOURCES_LIBBCRYPT
|
||||||
LIST_DIRECTORIES false
|
LIST_DIRECTORIES false
|
||||||
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
|
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/libbcrypt/*.c
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/libbcrypt/src/*.c
|
${CMAKE_CURRENT_SOURCE_DIR}/libbcrypt/src/*.c
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(bcrypt ${SOURCES_LIBBCRYPT})
|
add_library(bcrypt ${SOURCES_LIBBCRYPT})
|
||||||
|
|
||||||
|
# Because we are not using the libbcrypt CMakeLists.txt, we need to include these headers for the library to use.
|
||||||
|
# fortunately they are only needed for building the libbcrypt directory and nothing else, so these are marked private.
|
||||||
|
|
||||||
|
target_include_directories(bcrypt PRIVATE "libbcrypt/include")
|
||||||
|
target_include_directories(bcrypt PRIVATE "libbcrypt/src")
|
||||||
|
|
||||||
# Source code for sqlite
|
# Source code for sqlite
|
||||||
add_subdirectory(SQLite)
|
add_subdirectory(SQLite)
|
||||||
|
|
||||||
@ -31,7 +37,7 @@ add_subdirectory(raknet)
|
|||||||
# Download Backtrace if configured
|
# Download Backtrace if configured
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
include(FetchContent)
|
include(FetchContent)
|
||||||
if (__include_backtrace__ AND __compile_backtrace__)
|
if (${INCLUDE_BACKTRACE} AND ${COMPILE_BACKTRACE})
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
backtrace
|
backtrace
|
||||||
GIT_REPOSITORY https://github.com/ianlancetaylor/libbacktrace.git
|
GIT_REPOSITORY https://github.com/ianlancetaylor/libbacktrace.git
|
||||||
|
2
thirdparty/CMakeMariaDBLists.txt
vendored
2
thirdparty/CMakeMariaDBLists.txt
vendored
@ -93,7 +93,7 @@ else() # Build from source
|
|||||||
-DINSTALL_PLUGINDIR=plugin
|
-DINSTALL_PLUGINDIR=plugin
|
||||||
${MARIADB_EXTRA_CMAKE_ARGS}
|
${MARIADB_EXTRA_CMAKE_ARGS}
|
||||||
PREFIX "${PROJECT_BINARY_DIR}/mariadbcpp"
|
PREFIX "${PROJECT_BINARY_DIR}/mariadbcpp"
|
||||||
BUILD_COMMAND cmake --build . --config RelWithDebInfo -j${__maria_db_connector_compile_jobs__}
|
BUILD_COMMAND cmake --build . --config RelWithDebInfo -j${MARIADB_CONNECTOR_COMPILE_JOBS}
|
||||||
INSTALL_COMMAND "")
|
INSTALL_COMMAND "")
|
||||||
|
|
||||||
ExternalProject_Get_Property(mariadb_connector_cpp BINARY_DIR)
|
ExternalProject_Get_Property(mariadb_connector_cpp BINARY_DIR)
|
||||||
|
Loading…
Reference in New Issue
Block a user