mirror of
https://github.com/mangosfour/server.git
synced 2025-12-11 07:37:02 +00:00
[Build] Improved Build System, based on the work of H0zen (#131)
* [Build] Submodules updated in prep for build system changes * [Build] Improved Build System, based on the work of H0zen
This commit is contained in:
parent
a637b05d3c
commit
850ab3057f
16 changed files with 102 additions and 381 deletions
|
|
@ -18,21 +18,10 @@
|
|||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
project(MaNGOS)
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
set(MANGOS_VERSION 0.21)
|
||||
set(MANGOS_EXP "CATA")
|
||||
add_definitions(-DCATA)
|
||||
# CMake policies
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
# Until CMake 3.0 is the standard
|
||||
# And a solution to set_directory_properties is found.
|
||||
if(POLICY CMP0043)
|
||||
cmake_policy(SET CMP0043 OLD)
|
||||
endif()
|
||||
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_INSTALL_RPATH "${LIBS_DIR}")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
# Set the correct macro directory path
|
||||
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
|
@ -50,8 +39,8 @@ option(BUILD_MANGOSD "Build the main server" ON)
|
|||
option(BUILD_REALMD "Build the login server" ON)
|
||||
option(BUILD_TOOLS "Build the map/vmap/mmap extractors" ON)
|
||||
option(SCRIPT_LIB_ELUNA "Compile with support for Eluna scripts" OFF)
|
||||
option(SCRIPT_LIB_SD3 "Compile with support for ScriptDev2 scripts" ON)
|
||||
option(PLAYERBOTS "Enable Player Bots" OFF)
|
||||
option(SCRIPT_LIB_SD3 "Compile with support for ScriptDev3 scripts" ON)
|
||||
#option(PLAYERBOTS "Enable Player Bots" OFF)
|
||||
option(SOAP "Enable remote access via SOAP" OFF)
|
||||
# Hidden option to enable/disable PCH. DEV ONLY!
|
||||
set(PCH ON)
|
||||
|
|
@ -74,8 +63,8 @@ message(
|
|||
Scripting engines:
|
||||
SCRIPT_LIB_ELUNA Compile with support for Eluna scripts
|
||||
SCRIPT_LIB_SD3 Compile with support for ScriptDev3 scripts
|
||||
Modules:
|
||||
PLAYERBOTS Enable Player Bots
|
||||
# Modules:
|
||||
# PLAYERBOTS Enable Player Bots
|
||||
To set an option simply type -D<OPTION>=<VALUE> after 'cmake <srcs>'.
|
||||
Also, you can specify the generator with -G. see 'cmake --help' for more details
|
||||
For example: cmake .. -DDEBUG=1 -DCMAKE_INSTALL_PREFIX=/opt/mangos
|
||||
|
|
@ -92,12 +81,6 @@ find_package(Git)
|
|||
find_package(PCHSupport)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
|
||||
# For Unix systems set the rpath so that libraries are found
|
||||
set(CMAKE_INSTALL_RPATH "${LIBS_DIR}")
|
||||
set(CMAKE_INSTALL_NAME_DIR "${LIBS_DIR}")
|
||||
# Run out of build tree
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH OFF)
|
||||
|
||||
if(ACE_USE_EXTERNAL)
|
||||
find_package(ACE)
|
||||
if(NOT ACE_FOUND)
|
||||
|
|
@ -105,14 +88,8 @@ if(ACE_USE_EXTERNAL)
|
|||
"This project requires ACE installed when ACE_USE_EXTERNAL is set. Please download the ACE Micro Release Kit from http://download.dre.vanderbilt.edu/ and install it. If this script didn't find ACE and it was correctly installed please set ACE_ROOT to the correct path."
|
||||
)
|
||||
endif()
|
||||
if(EXISTS ${ACE_INCLUDE_DIR}/ace/Stack_Trace.h)
|
||||
add_definitions(-DHAVE_ACE_STACK_TRACE_H)
|
||||
endif()
|
||||
else()
|
||||
include(cmake/ImportACE.cmake)
|
||||
if(NOT(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD"))
|
||||
add_definitions(-DHAVE_ACE_STACK_TRACE_H)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(POSTGRESQL)
|
||||
|
|
@ -129,7 +106,7 @@ endif()
|
|||
#Include platform/compiler-specific definitions
|
||||
include(${CMAKE_SOURCE_DIR}/cmake/SetDefinitions.cmake)
|
||||
|
||||
set(DEFINITIONS ${DEFINITIONS} CATA)
|
||||
add_definitions(-DCATA)
|
||||
|
||||
message(STATUS "Install server to : ${CMAKE_INSTALL_PREFIX}")
|
||||
message(STATUS "Install configs to : ${CONF_INSTALL_DIR}")
|
||||
|
|
|
|||
|
|
@ -10,39 +10,35 @@
|
|||
if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
set(MYSQL_FOUND TRUE)
|
||||
else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
if(WIN32)
|
||||
SET(PROGRAM_FILES_ARCH_PATH)
|
||||
if(PLATFORM EQUAL 32)
|
||||
SET(PROGRAM_FILES_ARCH_PATH $ENV{ProgramFiles})
|
||||
elseif(PLATFORM EQUAL 64)
|
||||
SET(PROGRAM_FILES_ARCH_PATH $ENV{ProgramW6432})
|
||||
endif()
|
||||
|
||||
SET(PROGRAM_FILES_ARCH_PATH)
|
||||
if(PLATFORM EQUAL 32)
|
||||
SET(PROGRAM_FILES_ARCH_PATH $ENV{ProgramFiles})
|
||||
elseif(PLATFORM EQUAL 64)
|
||||
SET(PROGRAM_FILES_ARCH_PATH $ENV{ProgramW6432})
|
||||
endif()
|
||||
if (${PROGRAM_FILES_ARCH_PATH})
|
||||
STRING(REPLACE "\\\\" "/" PROGRAM_FILES_ARCH_PATH ${PROGRAM_FILES_ARCH_PATH})
|
||||
endif(${PROGRAM_FILES_ARCH_PATH})
|
||||
|
||||
if (${PROGRAM_FILES_ARCH_PATH})
|
||||
STRING(REPLACE "\\\\" "/" PROGRAM_FILES_ARCH_PATH ${PROGRAM_FILES_ARCH_PATH})
|
||||
endif(${PROGRAM_FILES_ARCH_PATH})
|
||||
|
||||
find_path(MYSQL_INCLUDE_DIR mysql.h
|
||||
/usr/include
|
||||
/usr/include/mysql
|
||||
/usr/local/include
|
||||
/usr/local/include/mysql
|
||||
/usr/local/mysql/include
|
||||
/opt/local/include/mysql*/mysql
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.0/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.1/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.2/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.3/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.4/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.5/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.6/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.7/include"
|
||||
)
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
find_path(MYSQL_INCLUDE_DIR mysql.h
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.0/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.1/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.2/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.3/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.4/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.5/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.6/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.7/include"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.0/include/mysql"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.1/include/mysql"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.2/include/mysql"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.3/include/mysql"
|
||||
)
|
||||
find_library(MYSQL_LIBRARY
|
||||
NAMES
|
||||
libmysql
|
||||
libmysql libmariadb
|
||||
PATHS
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.0/lib/opt"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.1/lib/opt"
|
||||
|
|
@ -52,8 +48,21 @@ else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
|||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.5/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.6/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MySQL/MySQL Server 5.7/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.0/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.1/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.2/lib"
|
||||
"${PROGRAM_FILES_ARCH_PATH}/MariaDB 10.3/lib"
|
||||
)
|
||||
else(WIN32 AND MSVC)
|
||||
else(WIN32)
|
||||
find_path(MYSQL_INCLUDE_DIR mysql.h
|
||||
/usr/include
|
||||
/usr/include/mysql
|
||||
/usr/local/include
|
||||
/usr/local/include/mysql
|
||||
/usr/local/mysql/include
|
||||
/opt/local/include/mysql*/mysql
|
||||
)
|
||||
|
||||
find_library(MYSQL_LIBRARY
|
||||
NAMES
|
||||
mysqlclient
|
||||
|
|
@ -66,7 +75,7 @@ else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
|||
/usr/local/mysql/lib
|
||||
/opt/local/lib/mysql*/mysql
|
||||
)
|
||||
endif(WIN32 AND MSVC)
|
||||
endif(WIN32)
|
||||
|
||||
if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
|
||||
set(MYSQL_FOUND TRUE)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# - Try to find the OpenSSL encryption library
|
||||
# Try to find the OpenSSL encryption library
|
||||
# Once done this will define
|
||||
#
|
||||
# OPENSSL_ROOT_DIR - Set this variable to the root installation of OpenSSL
|
||||
|
|
|
|||
|
|
@ -14,35 +14,9 @@
|
|||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# Specify ace lib that was build externally
|
||||
# add_library(ace SHARED IMPORTED)
|
||||
# Sadly doesn't work in current version of cmake
|
||||
# add_dependencies(ace ACE_Project)
|
||||
# set_target_properties(ace PROPERTIES DEPENDS ACE_Project)
|
||||
add_definitions(-DACE_AS_STATIC_LIBS)
|
||||
|
||||
set(ACE_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/dep/acelite)
|
||||
set(ACE_LIBRARIES_DIR ${CMAKE_BINARY_DIR}/dep/acelite/ace)
|
||||
set(ACE_LIBRARIES optimized ACE debug ACE)
|
||||
|
||||
# Little Hack to remove the link warnings because of not found directories
|
||||
#if(XCODE)
|
||||
# foreach(DIR ${ACE_LIBRARIES_DIR})
|
||||
# foreach(CONF ${CMAKE_CONFIGURATION_TYPES})
|
||||
# file(MAKE_DIRECTORY ${DIR}/${CONF})
|
||||
# endforeach(CONF)
|
||||
# endforeach(DIR)
|
||||
#endif()
|
||||
|
||||
link_directories(
|
||||
${ACE_LIBRARIES_DIR}
|
||||
)
|
||||
|
||||
#if(WIN32)
|
||||
# foreach(DIR ${ACE_LIBRARIES_DIR})
|
||||
# install(
|
||||
# DIRECTORY ${DIR}/ DESTINATION ${LIBS_DIR}
|
||||
# FILES_MATCHING PATTERN "*.dll*" #"*.${LIB_SUFFIX}*"
|
||||
# PATTERN "pkgconfig" EXCLUDE
|
||||
# )
|
||||
# endforeach(DIR)
|
||||
#endif()
|
||||
link_directories(${ACE_LIBRARIES_DIR})
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ if(WIN32)
|
|||
set(LIBS_DIR ${CMAKE_INSTALL_PREFIX}/)
|
||||
|
||||
if(MSVC)
|
||||
set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1)
|
||||
if(PLATFORM EQUAL 64)
|
||||
# This definition is necessary to work around a bug with Intellisense described
|
||||
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper
|
||||
|
|
@ -108,12 +109,7 @@ elseif(UNIX)
|
|||
)
|
||||
|
||||
if(CMAKE_C_COMPILER MATCHES "gcc" OR CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
|
||||
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
|
||||
if(PLATFORM EQUAL 32)
|
||||
set(SSE_FLAGS "-msse2 -mfpmath=sse")
|
||||
|
|
@ -148,14 +144,10 @@ elseif(UNIX)
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Woverloaded-virtual")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3")
|
||||
if (BUILD_SHARED_LIBS)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# -Wno-narrowing needed to suppress a warning in g3d
|
||||
# -Wno-deprecated-register is needed to suppress 185 gsoap warnings on Unix systems.
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-narrowing -Wno-deprecated-register -Wno-ignored-attributes -Wno-deprecated-declarations")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
2
dep
2
dep
|
|
@ -1 +1 @@
|
|||
Subproject commit 2ca435ec6219a903412f4cef0dd7adae239a7232
|
||||
Subproject commit e2ee48ca3862fe8450114a233472df08d918db2e
|
||||
|
|
@ -50,4 +50,14 @@ endif()
|
|||
# If we want the tools for map/vmap/mmap extraction
|
||||
if(BUILD_TOOLS)
|
||||
add_subdirectory(tools)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (BUILD_MANGOSD OR BUILD_REALMD)
|
||||
if(WIN32)
|
||||
get_filename_component(MYSQL_LIB_DIR ${MYSQL_LIBRARY} DIRECTORY)
|
||||
get_filename_component(MYSQL_LIB_DLL ${MYSQL_LIBRARY} NAME)
|
||||
STRING(REPLACE ".lib" ".dll" MYSQL_LIB_DLL ${MYSQL_LIB_DLL})
|
||||
install(FILES ${MYSQL_LIB_DIR}/${MYSQL_LIB_DLL} DESTINATION ${BIN_DIR})
|
||||
install(FILES ${OPENSSL_ROOT_DIR}/libeay32.dll DESTINATION ${BIN_DIR})
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -25,160 +25,13 @@
|
|||
#ifndef MANGOS_UNORDERED_MAP_H
|
||||
#define MANGOS_UNORDERED_MAP_H
|
||||
|
||||
#include "Platform/CompilerDefs.h"
|
||||
#include "Platform/Define.h"
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <AvailabilityMacros.h>
|
||||
#endif
|
||||
#define UNORDERED_MAP std::unordered_map
|
||||
#define UNORDERED_SET std::unordered_set
|
||||
|
||||
#if COMPILER == COMPILER_CLANG
|
||||
# if defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_9) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
|
||||
# include <unordered_map>
|
||||
# include <unordered_set>
|
||||
# else
|
||||
# include <tr1/unordered_map>
|
||||
# include <tr1/unordered_set>
|
||||
# endif
|
||||
#elif COMPILER == COMPILER_INTEL
|
||||
# include <ext/hash_map>
|
||||
# include <ext/hash_set>
|
||||
#elif COMPILER == COMPILER_GNU && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||
# include <tr1/unordered_map>
|
||||
# include <tr1/unordered_set>
|
||||
#elif COMPILER == COMPILER_GNU && __GNUC__ >= 3 && (__GNUC__ < 4 || __GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
||||
# include <ext/hash_map>
|
||||
# include <ext/hash_set>
|
||||
#elif COMPILER == COMPILER_MICROSOFT && (_MSC_VER > 1500 || _MSC_VER == 1500 && _HAS_TR1) // VC9.0 SP1 and later
|
||||
# include <unordered_map>
|
||||
# include <unordered_set>
|
||||
#else
|
||||
# include <hash_map>
|
||||
# include <hash_set>
|
||||
#endif
|
||||
|
||||
#ifdef _STLPORT_VERSION
|
||||
# define UNORDERED_MAP std::hash_map
|
||||
# define UNORDERED_SET std::hash_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
using std::hash_map;
|
||||
using std::hash_set;
|
||||
#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1600 // VS100
|
||||
# define UNORDERED_MAP std::unordered_map
|
||||
# define UNORDERED_SET std::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1500 && _HAS_TR1
|
||||
# define UNORDERED_MAP std::tr1::unordered_map
|
||||
# define UNORDERED_SET std::tr1::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std { namespace tr1 {
|
||||
# define HASH_NAMESPACE_END } }
|
||||
#elif COMPILER == COMPILER_MICROSOFT && _MSC_VER >= 1300
|
||||
# define UNORDERED_MAP stdext::hash_map
|
||||
# define UNORDERED_SET stdext::hash_set
|
||||
# define HASH_NAMESPACE_START namespace stdext {
|
||||
# define HASH_NAMESPACE_END }
|
||||
using stdext::hash_map;
|
||||
using stdext::hash_set;
|
||||
|
||||
#if !_HAS_TRADITIONAL_STL
|
||||
|
||||
// can be not used by some platforms, so provide fake forward
|
||||
HASH_NAMESPACE_START
|
||||
|
||||
template<class K>
|
||||
class hash
|
||||
{
|
||||
public:
|
||||
size_t operator()(K const&);
|
||||
};
|
||||
|
||||
HASH_NAMESPACE_END
|
||||
|
||||
#endif
|
||||
|
||||
#elif COMPILER == COMPILER_INTEL
|
||||
# define UNORDERED_MAP std::hash_map
|
||||
# define UNORDERED_SET std::hash_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
using std::hash_map;
|
||||
using std::hash_set;
|
||||
#elif COMPILER == COMPILER_CLANG && defined(__FreeBSD__)
|
||||
# include <osreldate.h>
|
||||
# define UNORDERED_MAP std::unordered_map
|
||||
# define UNORDERED_SET std::unordered_set
|
||||
# if __FreeBSD_version >= 1001000
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
# else
|
||||
# define HASH_NAMESPACE_START namespace std { namespace __1 {
|
||||
# define HASH_NAMESPACE_END } }
|
||||
# endif
|
||||
#elif COMPILER == COMPILER_CLANG
|
||||
# if defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_9) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
|
||||
# define UNORDERED_MAP std::unordered_map
|
||||
# define UNORDERED_SET std::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
# else
|
||||
# define UNORDERED_MAP std::tr1::unordered_map
|
||||
# define UNORDERED_SET std::tr1::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std { namespace tr1 {
|
||||
# define HASH_NAMESPACE_END } }
|
||||
# endif
|
||||
#elif COMPILER == COMPILER_GNU && (__GNUC__ > 4 || __GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
||||
# if defined(__APPLE__) && defined(MAC_OS_X_VERSION_10_9) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
|
||||
# define UNORDERED_MAP std::unordered_map
|
||||
# define UNORDERED_SET std::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
# else
|
||||
# define UNORDERED_MAP std::tr1::unordered_map
|
||||
# define UNORDERED_SET std::tr1::unordered_set
|
||||
# define HASH_NAMESPACE_START namespace std { namespace tr1 {
|
||||
# define HASH_NAMESPACE_END } }
|
||||
# endif
|
||||
#elif COMPILER == COMPILER_GNU && __GNUC__ >= 3 && (__GNUC__ < 4 || __GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
||||
# define UNORDERED_MAP __gnu_cxx::hash_map
|
||||
# define UNORDERED_SET __gnu_cxx::hash_set
|
||||
# define HASH_NAMESPACE_START namespace __gnu_cxx {
|
||||
# define HASH_NAMESPACE_END }
|
||||
|
||||
HASH_NAMESPACE_START
|
||||
|
||||
template<>
|
||||
class hash<unsigned long long>
|
||||
{
|
||||
public:
|
||||
size_t operator()(const unsigned long long& __x) const { return (size_t)__x; }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class hash<T*>
|
||||
{
|
||||
public:
|
||||
size_t operator()(T* const& __x) const { return (size_t)__x; }
|
||||
};
|
||||
|
||||
template<> struct hash<std::string>
|
||||
{
|
||||
size_t operator()(const std::string& __x) const
|
||||
{
|
||||
return hash<const char*>()(__x.c_str());
|
||||
}
|
||||
};
|
||||
|
||||
HASH_NAMESPACE_END
|
||||
|
||||
#else
|
||||
# define UNORDERED_MAP std::hash_map
|
||||
# define UNORDERED_SET std::hash_set
|
||||
# define HASH_NAMESPACE_START namespace std {
|
||||
# define HASH_NAMESPACE_END }
|
||||
using std::hash_map;
|
||||
using std::hash_set;
|
||||
#endif
|
||||
#define HASH_NAMESPACE_START namespace std {
|
||||
#define HASH_NAMESPACE_END }
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -105,13 +105,6 @@ endif()
|
|||
|
||||
add_executable(${EXECUTABLE_NAME} ${EXECUTABLE_SRCS})
|
||||
|
||||
if(NOT ACE_USE_EXTERNAL)
|
||||
add_dependencies(${EXECUTABLE_NAME} ace)
|
||||
target_link_libraries(${EXECUTABLE_NAME} ace)
|
||||
else()
|
||||
target_link_libraries(${EXECUTABLE_NAME} ACE)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${EXECUTABLE_NAME}
|
||||
game
|
||||
shared
|
||||
|
|
@ -120,6 +113,13 @@ target_link_libraries(${EXECUTABLE_NAME}
|
|||
${OPENSSL_LIBRARIES}
|
||||
)
|
||||
|
||||
if(NOT ACE_USE_EXTERNAL)
|
||||
add_dependencies(${EXECUTABLE_NAME} ace)
|
||||
target_link_libraries(${EXECUTABLE_NAME} ace)
|
||||
else()
|
||||
target_link_libraries(${EXECUTABLE_NAME} ACE)
|
||||
endif()
|
||||
|
||||
if(POSTGRESQL)
|
||||
include_directories(${PostgreSQL_INCLUDE_DIR})
|
||||
target_link_libraries(${EXECUTABLE_NAME} ${PostgreSQL_LIBRARIES})
|
||||
|
|
@ -166,23 +166,5 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mangosd.conf.dist.in ${CMAKE_CURRENT_
|
|||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist DESTINATION ${CONF_INSTALL_DIR})
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}" CONFIGURATIONS Debug)
|
||||
add_custom_command(TARGET ${EXECUTABLE_NAME}
|
||||
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/mangosd.conf.dist" "${CONF_COPY_DIR}"
|
||||
)
|
||||
endif()
|
||||
|
||||
#Copy dlls to build dir
|
||||
if(WIN32)
|
||||
if(MSVC)
|
||||
add_custom_command(TARGET ${EXECUTABLE_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY}" "${CMAKE_BINARY_DIR}/bin/$(Configuration)/"
|
||||
)
|
||||
elseif(XCODE)
|
||||
add_custom_command(TARGET ${EXECUTABLE_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${MYSQL_LIBRARY}" "${CMAKE_BINARY_DIR}/bin/"
|
||||
)
|
||||
endif()
|
||||
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE_NAME}> DESTINATION ${BIN_DIR} OPTIONAL)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit adf7b4f09d8eac57266593d748ace73b222a24a0
|
||||
Subproject commit 0811fc2bc1337af3388ab3fb43f51e4dd4ca0c42
|
||||
|
|
@ -1 +1 @@
|
|||
Subproject commit 29ceb840942050155b088300fbdd9e5338380c06
|
||||
Subproject commit e4afb57b799a594ac7b2633a00432a352c30e86a
|
||||
|
|
@ -47,6 +47,15 @@ add_subdirectory(map-extractor)
|
|||
add_subdirectory(vmap-assembler)
|
||||
add_subdirectory(vmap-extractor)
|
||||
|
||||
|
||||
|
||||
|
||||
#install documentation and generation scripts
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/ExtractResources.sh"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/make_vmaps.bat"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/mmap_excluded.txt"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/MoveMapGen.sh"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/offmesh.txt"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../Extractor_Binaries/README.txt"
|
||||
DESTINATION
|
||||
"${BIN_DIR}/${TOOLS_DIR}"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -85,22 +85,8 @@ endif()
|
|||
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES LINK_FLAGS "${EXECUTABLE_LINK_FLAGS}")
|
||||
|
||||
#Output the compiled exes to build/bin/$(Configuration)/tools directory on windows by default
|
||||
if(WIN32)
|
||||
if ( MSVC )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/tools
|
||||
)
|
||||
elseif ( MINGW )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/tools
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${BIN_DIR}/${TOOLS_DIR}")
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}/${TOOLS_DIR}" CONFIGURATIONS Debug)
|
||||
endif()
|
||||
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE_NAME}> DESTINATION ${BIN_DIR}/${TOOLS_DIR} OPTIONAL)
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -40,51 +40,8 @@ add_executable(${EXECUTABLE_NAME} dbcfile.cpp System.cpp ${SOURCES} ${EXECUTABLE
|
|||
|
||||
target_link_libraries(${EXECUTABLE_NAME} loadlib storm)
|
||||
|
||||
#Output the compiled exes to build/bin/$(Configuration)/tools directory on windows by default
|
||||
if(WIN32)
|
||||
if ( MSVC )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/tools
|
||||
)
|
||||
elseif ( MINGW )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/tools
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${BIN_DIR}/${TOOLS_DIR}")
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}/${TOOLS_DIR}" CONFIGURATIONS Debug)
|
||||
endif()
|
||||
|
||||
#install documentation and generation scripts
|
||||
install(
|
||||
FILES
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/ExtractResources.sh"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/make_vmaps.bat"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/mmap_excluded.txt"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/MoveMapGen.sh"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/offmesh.txt"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries/README.txt"
|
||||
DESTINATION
|
||||
"${BIN_DIR}/${TOOLS_DIR}"
|
||||
)
|
||||
|
||||
if( WIN32 )
|
||||
if ( MSVC )
|
||||
add_custom_command(TARGET ${EXECUTABLE_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/tools/"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries" "${CMAKE_BINARY_DIR}/bin/$(ConfigurationName)/tools/"
|
||||
)
|
||||
elseif ( MINGW )
|
||||
add_custom_command(TARGET ${EXECUTABLE_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/bin/tools/"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/../../Extractor_Binaries" "${CMAKE_BINARY_DIR}/bin/tools/"
|
||||
)
|
||||
endif()
|
||||
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE_NAME}> DESTINATION ${BIN_DIR}/${TOOLS_DIR} OPTIONAL)
|
||||
endif()
|
||||
|
|
@ -65,22 +65,8 @@ endif()
|
|||
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES LINK_FLAGS "${EXECUTABLE_LINK_FLAGS}")
|
||||
|
||||
#Output the compiled exes to build/bin/$(Configuration)/tools directory on windows by default
|
||||
if(WIN32)
|
||||
if ( MSVC )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/tools
|
||||
)
|
||||
elseif ( MINGW )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/tools
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${BIN_DIR}/${TOOLS_DIR}")
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}/${TOOLS_DIR}" CONFIGURATIONS Debug)
|
||||
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE_NAME}> DESTINATION ${BIN_DIR}/${TOOLS_DIR} OPTIONAL)
|
||||
endif()
|
||||
|
|
@ -45,22 +45,8 @@ add_executable(${EXECUTABLE_NAME} ${EXECUTABLE_SRCS}
|
|||
|
||||
target_link_libraries(${EXECUTABLE_NAME} loadlib bzip2 zlib storm)
|
||||
|
||||
#Output the compiled exes to build/bin/$(Configuration)/tools directory on windows by default
|
||||
if(WIN32)
|
||||
if ( MSVC )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/Release/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/Debug/tools
|
||||
)
|
||||
elseif ( MINGW )
|
||||
set_target_properties(${EXECUTABLE_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin/tools
|
||||
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin/tools
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS ${EXECUTABLE_NAME} DESTINATION "${BIN_DIR}/${TOOLS_DIR}")
|
||||
|
||||
if(WIN32 AND MSVC)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/\${BUILD_TYPE}/${EXECUTABLE_NAME}.pdb" DESTINATION "${BIN_DIR}/${TOOLS_DIR}" CONFIGURATIONS Debug)
|
||||
install(FILES $<TARGET_PDB_FILE:${EXECUTABLE_NAME}> DESTINATION ${BIN_DIR}/${TOOLS_DIR} OPTIONAL)
|
||||
endif()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue