[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:
Antz 2018-04-11 22:28:10 +01:00 committed by Antz
parent a637b05d3c
commit 850ab3057f
16 changed files with 102 additions and 381 deletions

View file

@ -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}")

View file

@ -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)

View file

@ -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

View file

@ -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})

View file

@ -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

@ -1 +1 @@
Subproject commit 2ca435ec6219a903412f4cef0dd7adae239a7232
Subproject commit e2ee48ca3862fe8450114a233472df08d918db2e

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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}"
)

View file

@ -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()

View file

@ -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()

View file

@ -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()

View file

@ -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()