diff options
29 files changed, 1684 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 00000000000..92ece2f40e5 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,158 @@ +PROJECT(Trinity) +cmake_minimum_required(VERSION 2.4) +cmake_policy(SET CMP0005 OLD) + +include(cmake/FindAce.cmake) +include(cmake/FindMySql.cmake) +CONFIGURE_FILE( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) +ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") + +OPTION(DO_MYSQL "With MySQL support" 1) +OPTION(DO_POSTGRESQL "With PostgreSQL support" 0) # not complete yet, may not link properly. +OPTION(DO_SCRIPTS "With trinityscripts" 1) +OPTION(DO_CLI "With CLI" 1) +OPTION(DO_RA "With RA" 0) +OPTION(DO_DEBUG "Debug mode" 0) +OPTION(LARGE_CELL "Large cell size" 0) +OPTION(SHORT_SLEEP "Short sleep" 0) + +SET(GENREV_SRC +src/tools/genrevision/genrevision.cpp +) + +ADD_EXECUTABLE(genrev +${GENREV_SRC} +) +ADD_CUSTOM_TARGET("revision.h" ALL + COMMAND "${Trinity_BINARY_DIR}/genrev" + ${Trinity_SOURCE_DIR} + WORKING_DIRECTORY "${Trinity_SOURCE_DIR}/src/shared" +) + + +EXECUTE_PROCESS( + COMMAND hg tip --template {rev} + OUTPUT_VARIABLE HG_REVISION +) + +message("* Trinity Core revision: ${HG_REVISION}") + +IF (PREFIX) + SET(CMAKE_INSTALL_PREFIX ${PREFIX}) +ENDIF (PREFIX) + +if(CONF_DIR) + +else(CONF_DIR) +SET(CONF_DIR ${PREFIX}/etc) +endif(CONF_DIR) + +message("* Will install to: ${CMAKE_INSTALL_PREFIX}") +message("* With config dir at: ${CONF_DIR}") + +SET(LIBSDIR "/usr/lib /usr/local/lib /lib") +FIND_LIBRARY(SSLLIB NAMES ssl DOC "SSL library") +FIND_LIBRARY(ZLIB z "Zlib library") + + +IF(DO_POSTGRESQL) +message("* With PostgreSQL") +set(DO_MYSQL 0) +SET(POSTGRE_INCLUDES "-I/usr/include/postgresql -I/usr/local/postgresql ${POSTGRE_INCLUDES}") +SET(POSTGRE_LIBS "-L/usr/lib/postresql -lpq -lz -lpthread -lcrypt -lnsl -lm -lpthread -L/usr/lib -lssl -lcrypto ${POSTGRE_LIBS}") +ADD_DEFINITIONS(-DDO_POSTGRESQL) +ENDIF(DO_POSTGRESQL) + +IF(DO_MYSQL) + MESSAGE("* With MySQL") + FIND_MYSQL() + ADD_DEFINITIONS(-DDO_MYSQL) +ENDIF(DO_MYSQL) + +if(DO_SCRIPTS) +message("* With Trinity Scripts") +SET(SCRIPT_LIB trinityscript) +SET(SCRIPT_INCLUDE src/bindings/scripts/include) +else (DO_SCRIPTS) +message("* Without Trinity Scripts") +SET(SCRIPT_LIB trinityinterface) +SET(SCRIPT_INCLUDE src/bindings/interface) +endif(DO_SCRIPTS) + +message("-- Miscellaneus options:") + +if(DO_CLI) +message("* With CLI") +add_definitions(-DENABLE_CLI) +else (DO_CLI) +message(* Without CLI) +endif(DO_CLI) + +if(DO_RA) +message("* With RA") +add_definitions(-DENABLE_RA) +else(DO_RA) +message("* Without RA") +endif(DO_RA) + +if(DO_DEBUG) +message("* Debug mode ON") +add_definitions(-g -DTRINITY_DEBUG) +endif(DO_DEBUG) + +if(LARGE_CELL) +message("* Large cell size") +add_definitions(-DLARGE_CELL) +else(LARGE_CELL) +message("* Small cell size") +endif(LARGE_CELL) + +if(SHORT_SLEEP) +message("* System sleep time is 50ms") +add_definitions(-DSHORT_SLEEP) +else(SHORT_SLEEP) +message("* System sleep time is 100ms") +endif(SHORT_SLEEP) + +FIND_ACE(ACE) +if(ACE_FOUND) +message(STATUS "Found ACE library: ${ACE_LIBRARY}") +message(STATUS "Include dir is: ${ACE_INCLUDE_DIR}") +#else(ACE_FOUND) +#message( "** ACE library not found, will try to build it myself.") +#SET(BUILD_ACE 1) BRIAN LIKES MEN +#SET(ACE_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/dep/ACE_wrappers ${CMAKE_BINARY_DIR}/dep/ACE_wrappers") +#SET(ACE_LIBRARY ACE) +#message(STATUS "I will try to build ACE from: ${ACE_INCLUDE_DIR}") +#message(STATUS "And link using: ${ACE_LIBRARY}") +endif(ACE_FOUND) + +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h) + + + +add_definitions(--no-warnings) #to make build look nice, no gcc nazi warnings. + +INCLUDE_DIRECTORIES( +dep/include +dep/include/g3dlite +dep/include/sockets +src/shared +src/framework +src/shared/Database +src/shared/vmap +src/game +${SCRIPT_INCLUDE} +${MYSQL_INCLUDE_DIR} +${POSTGRE_INCLUDES} +${CMAKE_CURRENT_BINARY_DIR}/src/shared +${CMAKE_CURRENT_SOURCE_DIR}/.. +${ACE_INCLUDE_DIR} +) + +add_subdirectory(dep) +add_subdirectory(doc) +add_subdirectory(src) diff --git a/cmake/FindAce.cmake b/cmake/FindAce.cmake new file mode 100644 index 00000000000..b7be34784a9 --- /dev/null +++ b/cmake/FindAce.cmake @@ -0,0 +1,31 @@ +# This script is taken from BFilter project, thanks to original authors. +# - Locate the ACE library +# This module defines +# ACE_FOUND -- true if ACE was found +# ACE_LIBRARY -- the library to link against +# ACE_INCLUDE_DIR -- path to ace/ACE.h +MACRO(FIND_ACE LIBNAME) + GET_FILENAME_COMPONENT(parent_dir_ "${PROJECT_SOURCE_DIR}/.." ABSOLUTE) + FIND_PATH( + ACE_INCLUDE_DIR ace/ACE.h + PATHS /usr/include /usr/local/include + "${CMAKE_INSTALL_PREFIX}/include" "${parent_dir_}/ACE_wrappers" + DOC "Path to ace/ACE.h" + ) + + # This prevents it being taken from cache. + SET(ACE_LIBRARY ACE_LIBRARY-NOTFOUND) + + FIND_LIBRARY( + ACE_LIBRARY "${LIBNAME}" + PATHS /usr/lib /usr/local/lib + "${CMAKE_INSTALL_PREFIX}/lib" "${parent_dir_}/ACE_wrappers/ace" + DOC "Path to ACE library file" + ) + IF(ACE_INCLUDE_DIR AND ACE_LIBRARY) + SET(ACE_FOUND TRUE) + ELSE(ACE_INCLUDE_DIR AND ACE_LIBRARY) + SET(ACE_FOUND FALSE) + ENDIF(ACE_INCLUDE_DIR AND ACE_LIBRARY) +ENDMACRO(FIND_ACE) + diff --git a/cmake/FindMySql.cmake b/cmake/FindMySql.cmake new file mode 100644 index 00000000000..e149cd4eaf0 --- /dev/null +++ b/cmake/FindMySql.cmake @@ -0,0 +1,102 @@ +# - Find MySQL +# Find the MySQL includes and client library +# This module defines +# MYSQL_INCLUDE_DIR, where to find mysql.h +# MYSQL_LIBRARIES, the libraries needed to use MySQL. +# MYSQL_FOUND, If false, do not try to use MySQL. +# +# Copyright (c) 2006, Jaroslaw Staniek, <js@iidea.pl> +# Lot of adustmens by Michal Cihar <michal@cihar.com> +# +# vim: expandtab sw=4 ts=4 sts=4: +# +# Redistribution and use is allowed according to the terms of the BSD license. + +MACRO(FIND_MYSQL) +if(UNIX) + set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH + "preferred path to MySQL (mysql_config)") + find_program(MYSQL_CONFIG mysql_config + ${MYSQL_CONFIG_PREFER_PATH} + /usr/local/mysql/bin/ + /usr/local/bin/ + /usr/bin/ + ) + + if(MYSQL_CONFIG) + message(STATUS "Using mysql-config: ${MYSQL_CONFIG}") + # set INCLUDE_DIR + exec_program(${MYSQL_CONFIG} + ARGS --include + OUTPUT_VARIABLE MY_TMP) + + string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}") + + set(MYSQL_ADD_INCLUDE_DIR ${MY_TMP} CACHE FILEPATH INTERNAL) + + # set LIBRARY_DIR + exec_program(${MYSQL_CONFIG} + ARGS --libs_r + OUTPUT_VARIABLE MY_TMP) + + set(MYSQL_ADD_LIBRARIES "") + + string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}") + foreach(LIB ${MYSQL_LIB_LIST}) + string(REGEX REPLACE "[ ]*-l([^ ]*)" "\\1" LIB "${LIB}") + list(APPEND MYSQL_ADD_LIBRARIES "${LIB}") + endforeach(LIB ${MYSQL_LIBS}) + + set(MYSQL_ADD_LIBRARY_PATH "") + + string(REGEX MATCHALL "-L[^ ]*" MYSQL_LIBDIR_LIST "${MY_TMP}") + foreach(LIB ${MYSQL_LIBDIR_LIST}) + string(REGEX REPLACE "[ ]*-L([^ ]*)" "\\1" LIB "${LIB}") + list(APPEND MYSQL_ADD_LIBRARY_PATH "${LIB}") + endforeach(LIB ${MYSQL_LIBS}) + + else(MYSQL_CONFIG) + set(MYSQL_ADD_LIBRARIES "") + list(APPEND MYSQL_ADD_LIBRARIES "mysqlclient") + endif(MYSQL_CONFIG) +else(UNIX) + set(MYSQL_ADD_INCLUDE_DIR "c:/msys/local/include" CACHE FILEPATH INTERNAL) + set(MYSQL_ADD_LIBRARY_PATH "c:/msys/local/lib" CACHE FILEPATH INTERNAL) +ENDIF(UNIX) + +find_path(MYSQL_INCLUDE_DIR mysql.h + /usr/local/include + /usr/local/include/mysql + /usr/local/mysql/include + /usr/local/mysql/include/mysql + /usr/include + /usr/include/mysql + ${MYSQL_ADD_INCLUDE_DIR} +) + +set(TMP_MYSQL_LIBRARIES "") + +foreach(LIB ${MYSQL_ADD_LIBRARIES}) + find_library("MYSQL_LIBRARIES_${LIB}" NAMES ${LIB} + PATHS + ${MYSQL_ADD_LIBRARY_PATH} + /usr/lib/mysql + /usr/local/lib + /usr/local/lib/mysql + /usr/local/mysql/lib + ) + list(APPEND TMP_MYSQL_LIBRARIES "${MYSQL_LIBRARIES_${LIB}}") +endforeach(LIB ${MYSQL_ADD_LIBRARIES}) + +set(MYSQL_LIBRARIES ${TMP_MYSQL_LIBRARIES} CACHE FILEPATH INTERNAL) + +if(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES) + set(MYSQL_FOUND TRUE CACHE INTERNAL "MySQL found") + message(STATUS "Found MySQL: ${MYSQL_INCLUDE_DIR}, ${MYSQL_LIBRARIES}") +else(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES) + set(MYSQL_FOUND FALSE CACHE INTERNAL "MySQL found") + message(STATUS "MySQL not found.") +endif(MYSQL_INCLUDE_DIR AND MYSQL_LIBRARIES) + +mark_as_advanced(MYSQL_INCLUDE_DIR MYSQL_LIBRARIES) +ENDMACRO(FIND_MYSQL)
\ No newline at end of file diff --git a/cmake/cmake_uninstall.cmake.in b/cmake/cmake_uninstall.cmake.in new file mode 100644 index 00000000000..06f9c8263a8 --- /dev/null +++ b/cmake/cmake_uninstall.cmake.in @@ -0,0 +1,23 @@ +# from cmake wiki +IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") +ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") + +FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) +STRING(REGEX REPLACE "\n" ";" files "${files}") +FOREACH(file ${files}) + MESSAGE(STATUS "Uninstalling \"${file}\"") + IF(EXISTS "${file}") + EXEC_PROGRAM( + "@CMAKE_COMMAND@" ARGS "-E remove \"${file}\"" + OUTPUT_VARIABLE rm_out + RETURN_VALUE rm_retval + ) + IF("${rm_retval}" STREQUAL 0) + ELSE("${rm_retval}" STREQUAL 0) + MESSAGE(FATAL_ERROR "Problem when removing \"${file}\"") + ENDIF("${rm_retval}" STREQUAL 0) + ELSE(EXISTS "${file}") + MESSAGE(STATUS "File \"${file}\" does not exist.") + ENDIF(EXISTS "${file}") +ENDFOREACH(file) diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 00000000000..bfc116642de --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,277 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if the `closedir' function returns void instead of `int'. */ +#undef CLOSEDIR_VOID + +/* Define to 1 if you have the <arpa/inet.h> header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the `atexit' function. */ +#undef HAVE_ATEXIT + +/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'. + */ +#undef HAVE_DIRENT_H + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ +#undef HAVE_DOPRNT + +/* Define to 1 if you have the <fcntl.h> header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have the `ftime' function. */ +#undef HAVE_FTIME + +/* Define to 1 if you have the `gethostbyaddr' function. */ +#undef HAVE_GETHOSTBYADDR + +/* Define to 1 if you have the `gethostbyname' function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the `gethostname' function. */ +#undef HAVE_GETHOSTNAME + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <libpq-fe.h> header file. */ +#undef HAVE_LIBPQ_FE_H + +/* Define to 1 if you have the `pthread' library (-lpthread). */ +#undef HAVE_LIBPTHREAD + +/* Define to 1 if you have the <limits.h> header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the <locale.h> header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#undef HAVE_MALLOC + +/* Define to 1 if you have the <malloc.h> header file. */ +#undef HAVE_MALLOC_H + +/* Define to 1 if you have the `memmove' function. */ +#undef HAVE_MEMMOVE + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the <mysql.h> header file. */ +#undef HAVE_MYSQL_H + +/* Define to 1 if you have the <mysql/mysql.h> header file. */ +#undef HAVE_MYSQL_MYSQL_H + +/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */ +#undef HAVE_NDIR_H + +/* Define to 1 if you have the <netdb.h> header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the <netinet/in.h> header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the <openssl/bn.h> header file. */ +#undef HAVE_OPENSSL_BN_H + +/* Define to 1 if you have the <openssl/md5.h> header file. */ +#undef HAVE_OPENSSL_MD5_H + +/* Define to 1 if you have the <openssl/rand.h> header file. */ +#undef HAVE_OPENSSL_RAND_H + +/* Define to 1 if you have the <openssl/sha.h> header file. */ +#undef HAVE_OPENSSL_SHA_H + +/* Define to 1 if you have the <openssl/ssl.h> header file. */ +#undef HAVE_OPENSSL_SSL_H + +/* Define to 1 if you have the `pow' function. */ +#undef HAVE_POW + +/* Define to 1 if you have the <pthread.h> header file. */ +#undef HAVE_PTHREAD_H + +/* Define to 1 if the system has the type `ptrdiff_t'. */ +#undef HAVE_PTRDIFF_T + +/* Define to 1 if your system has a GNU libc compatible `realloc' function, + and to 0 otherwise. */ +#undef HAVE_REALLOC + +/* Define to 1 if you have the `realpath' function. */ +#undef HAVE_REALPATH + +/* Define to 1 if you have the `select' function. */ +#undef HAVE_SELECT + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the `sqrt' function. */ +#undef HAVE_SQRT + +/* Define to 1 if stdbool.h conforms to C99. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the <stddef.h> header file. */ +#undef HAVE_STDDEF_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strchr' function. */ +#undef HAVE_STRCHR + +/* Define to 1 if you have the `strdup' function. */ +#undef HAVE_STRDUP + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the `strstr' function. */ +#undef HAVE_STRSTR + +/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'. + */ +#undef HAVE_SYS_DIR_H + +/* Define to 1 if you have the <sys/ioctl.h> header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'. + */ +#undef HAVE_SYS_NDIR_H + +/* Define to 1 if you have the <sys/param.h> header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the <sys/select.h> header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the <sys/socket.h> header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/timeb.h> header file. */ +#undef HAVE_SYS_TIMEB_H + +/* Define to 1 if you have the <sys/time.h> header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <termios.h> header file. */ +#undef HAVE_TERMIOS_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vprintf' function. */ +#undef HAVE_VPRINTF + +/* Define to 1 if you have the <zlib.h> header file. */ +#undef HAVE_ZLIB_H + +/* Define to 1 if the system has the type `_Bool'. */ +#undef HAVE__BOOL + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define to the type of arg 1 for `select'. */ +#undef SELECT_TYPE_ARG1 + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#undef SELECT_TYPE_ARG234 + +/* Define to the type of arg 5 for `select'. */ +#undef SELECT_TYPE_ARG5 + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ +#undef TIME_WITH_SYS_TIME + +/* Define to 1 if your <sys/time.h> declares `struct tm'. */ +#undef TM_IN_SYS_TIME + +/* Version number of package */ +#undef VERSION + +/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef was allowed, the + #define below would cause a syntax error. */ +#undef _UINT64_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to rpl_malloc if the replacement function should be used. */ +#undef malloc + +/* Define to rpl_realloc if the replacement function should be used. */ +#undef realloc + +/* Define to `unsigned int' if <sys/types.h> does not define. */ +#undef size_t + +/* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ +#undef uint64_t + +/* Define to empty if the keyword `volatile' does not work. Warning: valid + code using `volatile' can become incorrect without. Disable with care. */ +#undef volatile diff --git a/dep/CMakeLists.txt b/dep/CMakeLists.txt new file mode 100644 index 00000000000..a813710db34 --- /dev/null +++ b/dep/CMakeLists.txt @@ -0,0 +1,6 @@ +#if(BUILD_ACE) +#add_subdirectory(ACE_wrappers) +#endif(BUILD_ACE) +add_subdirectory(include) +add_subdirectory(lib) +add_subdirectory(src) diff --git a/dep/lib/CMakeLists.txt b/dep/lib/CMakeLists.txt new file mode 100644 index 00000000000..3575d71a65a --- /dev/null +++ b/dep/lib/CMakeLists.txt @@ -0,0 +1,2 @@ + +# Nothing here as of yet. diff --git a/dep/src/CMakeLists.txt b/dep/src/CMakeLists.txt new file mode 100644 index 00000000000..7d6aa26f5fe --- /dev/null +++ b/dep/src/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory(g3dlite) +add_subdirectory(sockets) +add_subdirectory(zlib) +add_subdirectory(zthread) + + +########### install files ###############
\ No newline at end of file diff --git a/dep/src/g3dlite/CMakeLists.txt b/dep/src/g3dlite/CMakeLists.txt new file mode 100644 index 00000000000..89bea742272 --- /dev/null +++ b/dep/src/g3dlite/CMakeLists.txt @@ -0,0 +1,20 @@ + +########### next target ############### + +SET(g3dlite_STAT_SRCS + AABox.cpp + Box.cpp + Crypto.cpp + format.cpp + Matrix3.cpp + Plane.cpp + System.cpp + Triangle.cpp + Vector3.cpp + Vector4.cpp +) + +add_library(g3dlite STATIC ${g3dlite_STAT_SRCS}) + + +########### install files ############### diff --git a/dep/src/sockets/CMakeLists.txt b/dep/src/sockets/CMakeLists.txt new file mode 100644 index 00000000000..40ac135a9ae --- /dev/null +++ b/dep/src/sockets/CMakeLists.txt @@ -0,0 +1,22 @@ +SET(trinitysockets_STAT_SRCS + Base64.cpp + Exception.cpp + Ipv4Address.cpp + Ipv6Address.cpp + Lock.cpp + Mutex.cpp + Parse.cpp + ResolvServer.cpp + ResolvSocket.cpp + Socket.cpp + SocketHandler.cpp + StdoutLog.cpp + StreamSocket.cpp + TcpSocket.cpp + Thread.cpp + UdpSocket.cpp + Utility.cpp + socket_include.cpp +) + +add_library(trinitysockets STATIC ${trinitysockets_STAT_SRCS}) diff --git a/dep/src/zlib/CMakeLists.txt b/dep/src/zlib/CMakeLists.txt new file mode 100644 index 00000000000..b8803e81c11 --- /dev/null +++ b/dep/src/zlib/CMakeLists.txt @@ -0,0 +1,20 @@ + +########### next target ############### + +SET(zlib_STAT_SRCS + adler32.c + compress.c + crc32.c + deflate.c + example.c + gzio.c + infback.c + inffast.c + inflate.c + inftrees.c + trees.c + uncompr.c + zutil.c +) + +add_library(zlib STATIC ${zlib_STAT_SRCS}) diff --git a/dep/src/zthread/CMakeLists.txt b/dep/src/zthread/CMakeLists.txt new file mode 100644 index 00000000000..61fb1310588 --- /dev/null +++ b/dep/src/zthread/CMakeLists.txt @@ -0,0 +1,38 @@ +########### next target ############### + +SET(ZThread_LIB_SRCS + AtomicCount.cxx + Condition.cxx + ConcurrentExecutor.cxx + CountingSemaphore.cxx + FastMutex.cxx + FastRecursiveMutex.cxx + Mutex.cxx + RecursiveMutexImpl.cxx + RecursiveMutex.cxx + Monitor.cxx + PoolExecutor.cxx + PriorityCondition.cxx + PriorityInheritanceMutex.cxx + PriorityMutex.cxx + PrioritySemaphore.cxx + Semaphore.cxx + SynchronousExecutor.cxx + Thread.cxx + ThreadedExecutor.cxx + ThreadImpl.cxx + ThreadLocalImpl.cxx + ThreadQueue.cxx + Time.cxx + ThreadOps.cxx + ) + +ADD_LIBRARY(ZThread STATIC ${ZThread_LIB_SRCS}) + +TARGET_LINK_LIBRARIES(ZThread ) + +SET_TARGET_PROPERTIES(ZThread PROPERTIES VERSION 4.2.0 SOVERSION 4 ) +INSTALL(TARGETS ZThread DESTINATION lib ) + + +########### install files ############### diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt new file mode 100644 index 00000000000..dfdbfd0cf20 --- /dev/null +++ b/sql/CMakeLists.txt @@ -0,0 +1,7 @@ +add_subdirectory(updates) +add_subdirectory(tools) + + +########### install files ############### + +install(FILES world.sql realmd.sql characters.sql create_mysql.sql world_scripts_full.sql world_scripts_structure.sql drop_mysql.sql DESTINATION share/trinity/sql) diff --git a/sql/tools/CMakeLists.txt b/sql/tools/CMakeLists.txt new file mode 100644 index 00000000000..bcf0c7a8343 --- /dev/null +++ b/sql/tools/CMakeLists.txt @@ -0,0 +1,4 @@ + +########### install files ############### + +install(FILES characters_item_duplicates_remove.sql characters_pet_data_cleanup.sql README DESTINATION share/trinity/sql/tools) diff --git a/sql/updates/CMakeLists.txt b/sql/updates/CMakeLists.txt new file mode 100644 index 00000000000..53490e0a15e --- /dev/null +++ b/sql/updates/CMakeLists.txt @@ -0,0 +1,40 @@ +install(FILES +11_characters.sql +45_characters.sql +54_world.sql +57_world_scripts.sql +66_world_scripts.sql +68_world.sql +70_world_scripts.sql +78_world.sql +79_characters.sql +79_world.sql +82_world_scripts.sql +83_realmd.sql +84_world.sql +86_world_scripts.sql +90_world.sql +102_world.sql +112_world_scripts.sql +116_world.sql +117_world_scripts.sql +120_world.sql +123_world_scripts.sql +125_world_scripts.sql +133_world_scripts.sql +140_world.sql +145_world_scripts.sql +146_world.sql +147_world.sql +152_world.sql +153_world.sql +171_world.sql +172_world_scripts.sql +175_world_scripts.sql +176_world.sql +182_world.sql +194_world_blacktemple.sql +195_world_serpent_shrine.sql + +#Yes, i sorted them manually, so please be as kind as to add incoming .sql updates in order. +DESTINATION share/trinity/sql/updates)
\ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 00000000000..8c8b9e0126f --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(framework) +add_subdirectory(shared) +add_subdirectory(trinityrealm) +add_subdirectory(game) +add_subdirectory(bindings) +add_subdirectory(trinitycore) diff --git a/src/bindings/CMakeLists.txt b/src/bindings/CMakeLists.txt new file mode 100644 index 00000000000..6933b29fe2d --- /dev/null +++ b/src/bindings/CMakeLists.txt @@ -0,0 +1,5 @@ +if(DO_SCRIPTS) +add_subdirectory(scripts) +else (DO_SCRIPTS) +add_subdirectory(interface) +endif(DO_SCRIPTS) diff --git a/src/bindings/interface/CMakeLists.txt b/src/bindings/interface/CMakeLists.txt new file mode 100644 index 00000000000..4a8f0872422 --- /dev/null +++ b/src/bindings/interface/CMakeLists.txt @@ -0,0 +1,19 @@ + +########### next target ############### + +SET(trinityinterface_LIB_SRCS + ScriptMgr.cpp + ScriptMgr.h + config.h + system.cpp + Scripts/sc_default.cpp + Scripts/sc_defines.cpp + Scripts/sc_defines.h +) + +add_library(trinityinterface STATIC ${trinityinterface_LIB_SRCS}) + +target_link_libraries(trinityinterface) + +set_target_properties(trinityinterface PROPERTIES VERSION 4.2.0 SOVERSION 4) +install(TARGETS trinityinterface DESTINATION lib) diff --git a/src/bindings/interface/ScriptMgr.cpp b/src/bindings/interface/ScriptMgr.cpp index 027b5b1fe57..8e6f2e421b6 100644 --- a/src/bindings/interface/ScriptMgr.cpp +++ b/src/bindings/interface/ScriptMgr.cpp @@ -276,7 +276,7 @@ InstanceData* CreateInstanceData(Map *map) return tmpscript->GetInstanceData(map); } -*/ + void ScriptedAI::UpdateAI(const uint32) { //Check if we have a current target @@ -319,3 +319,4 @@ void ScriptedAI::DoGoHome() if( !m_creature->getVictim() && m_creature->isAlive() ) m_creature->GetMotionMaster()->MoveTargetedHome(); } +*/ diff --git a/src/bindings/scripts/CMakeLists.txt b/src/bindings/scripts/CMakeLists.txt new file mode 100644 index 00000000000..636530b9527 --- /dev/null +++ b/src/bindings/scripts/CMakeLists.txt @@ -0,0 +1,389 @@ + +########### next target ############### + +SET(trinityscript_LIB_SRCS + ScriptMgr.cpp + ScriptMgr.h + include/precompiled.cpp + include/precompiled.h + include/sc_creature.cpp + include/sc_creature.h + include/sc_gossip.h + include/sc_instance.h + scripts/areatrigger/areatrigger_scripts.cpp + scripts/boss/boss_emeriss.cpp + scripts/boss/boss_lethon.cpp + scripts/boss/boss_taerar.cpp + scripts/boss/boss_ysondre.cpp + scripts/creature/mob_event_ai.cpp + scripts/creature/mob_event_ai.h + scripts/creature/mob_generic_creature.cpp + scripts/creature/simple_ai.cpp + scripts/creature/simple_ai.h + scripts/custom/custom_example.cpp + scripts/custom/custom_gossip_codebox.cpp + scripts/custom/test.cpp + scripts/go/go_scripts.cpp + scripts/guard/guard_ai.cpp + scripts/guard/guard_ai.h + scripts/guard/guards.cpp + scripts/item/item_scripts.cpp + scripts/item/item_test.cpp + scripts/npc/npc_escortAI.cpp + scripts/npc/npc_escortAI.h + scripts/npc/npc_innkeeper.cpp + scripts/npc/npc_professions.cpp + scripts/npc/npcs_special.cpp + scripts/zone/arathi_highlands/arathi_highlands.cpp + scripts/zone/alterac_mountains/alterac_mountains.cpp + scripts/zone/ashenvale_forest/ashenvale.cpp + scripts/zone/aunchindoun/auchenai_crypts/boss_exarch_maladaar.cpp + scripts/zone/aunchindoun/auchenai_crypts/boss_shirrak_the_dead_watcher.cpp + scripts/zone/aunchindoun/mana_tombs/boss_nexusprince_shaffar.cpp + scripts/zone/aunchindoun/mana_tombs/boss_pandemonius.cpp + scripts/zone/aunchindoun/sethekk_halls/boss_darkweaver_syth.cpp + scripts/zone/aunchindoun/sethekk_halls/boss_tailonking_ikiss.cpp + scripts/zone/aunchindoun/sethekk_halls/def_sethekk_halls.h + scripts/zone/aunchindoun/sethekk_halls/instance_sethekk_halls.cpp + scripts/zone/aunchindoun/shadow_labyrinth/boss_ambassador_hellmaw.cpp + scripts/zone/aunchindoun/shadow_labyrinth/boss_blackheart_the_inciter.cpp + scripts/zone/aunchindoun/shadow_labyrinth/boss_grandmaster_vorpil.cpp + scripts/zone/aunchindoun/shadow_labyrinth/boss_murmur.cpp + scripts/zone/aunchindoun/shadow_labyrinth/def_shadow_labyrinth.h + scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp + scripts/zone/azshara/azshara.cpp + scripts/zone/azshara/boss_azuregos.cpp + scripts/zone/azuremyst_isle/azuremyst_isle.cpp + scripts/zone/barrens/the_barrens.cpp + scripts/zone/black_temple/black_temple.cpp + scripts/zone/black_temple/boss_bloodboil.cpp + scripts/zone/black_temple/boss_illidan.cpp + scripts/zone/black_temple/boss_mother_shahraz.cpp + scripts/zone/black_temple/boss_reliquary_of_souls.cpp + scripts/zone/black_temple/boss_shade_of_akama.cpp + scripts/zone/black_temple/boss_supremus.cpp + scripts/zone/black_temple/boss_teron_gorefiend.cpp + scripts/zone/black_temple/boss_warlord_najentus.cpp + scripts/zone/black_temple/def_black_temple.h + scripts/zone/black_temple/illidari_council.cpp + scripts/zone/black_temple/instance_black_temple.cpp + scripts/zone/blackrock_depths/blackrock_depths.cpp + scripts/zone/blackrock_depths/instance_blackrock_depths.cpp + scripts/zone/blackrock_depths/def_blackrock_depths.h + scripts/zone/blackrock_depths/boss_ambassador_flamelash.cpp + scripts/zone/blackrock_depths/boss_angerrel.cpp + scripts/zone/blackrock_depths/boss_anubshiah.cpp + scripts/zone/blackrock_depths/boss_doomrel.cpp + scripts/zone/blackrock_depths/boss_doperel.cpp + scripts/zone/blackrock_depths/boss_emperor_dagran_thaurissan.cpp + scripts/zone/blackrock_depths/boss_general_angerforge.cpp + scripts/zone/blackrock_depths/boss_gloomrel.cpp + scripts/zone/blackrock_depths/boss_gorosh_the_dervish.cpp + scripts/zone/blackrock_depths/boss_grizzle.cpp + scripts/zone/blackrock_depths/boss_haterel.cpp + scripts/zone/blackrock_depths/boss_high_interrogator_gerstahn.cpp + scripts/zone/blackrock_depths/boss_magmus.cpp + scripts/zone/blackrock_depths/boss_moira_bronzebeard.cpp + scripts/zone/blackrock_depths/boss_seethrel.cpp + scripts/zone/blackrock_depths/boss_vilerel.cpp + scripts/zone/blackrock_spire/boss_drakkisath.cpp + scripts/zone/blackrock_spire/boss_gyth.cpp + scripts/zone/blackrock_spire/boss_halycon.cpp + scripts/zone/blackrock_spire/boss_highlord_omokk.cpp + scripts/zone/blackrock_spire/boss_mother_smolderweb.cpp + scripts/zone/blackrock_spire/boss_overlord_wyrmthalak.cpp + scripts/zone/blackrock_spire/boss_pyroguard_emberseer.cpp + scripts/zone/blackrock_spire/boss_quartermaster_zigris.cpp + scripts/zone/blackrock_spire/boss_rend_blackhand.cpp + scripts/zone/blackrock_spire/boss_shadow_hunter_voshgajin.cpp + scripts/zone/blackrock_spire/boss_the_beast.cpp + scripts/zone/blackrock_spire/boss_warmaster_voone.cpp + scripts/zone/blackwing_lair/boss_broodlord_lashlayer.cpp + scripts/zone/blackwing_lair/boss_chromaggus.cpp + scripts/zone/blackwing_lair/boss_ebonroc.cpp + scripts/zone/blackwing_lair/boss_firemaw.cpp + scripts/zone/blackwing_lair/boss_flamegor.cpp + scripts/zone/blackwing_lair/boss_nefarian.cpp + scripts/zone/blackwing_lair/boss_razorgore.cpp + scripts/zone/blackwing_lair/boss_vaelastrasz.cpp + scripts/zone/blackwing_lair/boss_victor_nefarius.cpp + scripts/zone/blackwing_lair/instance_blackwing_lair.cpp + scripts/zone/blades_edge_mountains/blades_edge_mountains.cpp + scripts/zone/blasted_lands/blasted_lands.cpp + scripts/zone/blasted_lands/boss_kruul.cpp + scripts/zone/bloodmyst_isle/bloodmyst_isle.cpp + scripts/zone/burning_steppes/burning_steppes.cpp + scripts/zone/caverns_of_time/dark_portal/def_dark_portal.h + scripts/zone/caverns_of_time/dark_portal/instance_dark_portal.cpp + scripts/zone/caverns_of_time/dark_portal/dark_portal.cpp + scripts/zone/caverns_of_time/dark_portal/boss_aeonus.cpp + scripts/zone/caverns_of_time/dark_portal/boss_chrono_lord_deja.cpp + scripts/zone/caverns_of_time/dark_portal/boss_temporus.cpp + scripts/zone/caverns_of_time/hyjal/boss_archimonde.cpp + scripts/zone/caverns_of_time/hyjal/def_hyjal.h + scripts/zone/caverns_of_time/hyjal/hyjal.cpp + scripts/zone/caverns_of_time/hyjal/hyjalAI.cpp + scripts/zone/caverns_of_time/hyjal/hyjalAI.h + scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp + scripts/zone/caverns_of_time/old_hillsbrad/boss_captain_skarloc.cpp + scripts/zone/caverns_of_time/old_hillsbrad/boss_epoch_hunter.cpp + scripts/zone/caverns_of_time/old_hillsbrad/boss_leutenant_drake.cpp + scripts/zone/caverns_of_time/old_hillsbrad/def_old_hillsbrad.h + scripts/zone/caverns_of_time/old_hillsbrad/instance_old_hillsbrad.cpp + scripts/zone/caverns_of_time/old_hillsbrad/old_hillsbrad.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_fathomlord_karathress.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_hydross_the_unstable.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_lurker_below.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_lady_vashj.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_leotheras_the_blind.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/boss_morogrim_tidewalker.cpp + scripts/zone/coilfang_resevoir/serpent_shrine/def_serpent_shrine.h + scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp + scripts/zone/coilfang_resevoir/steam_vault/boss_hydromancer_thespia.cpp + scripts/zone/coilfang_resevoir/steam_vault/boss_mekgineer_steamrigger.cpp + scripts/zone/coilfang_resevoir/steam_vault/boss_warlord_kalithresh.cpp + scripts/zone/coilfang_resevoir/steam_vault/def_steam_vault.h + scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp + scripts/zone/coilfang_resevoir/underbog/boss_hungarfen.cpp + scripts/zone/darkshore/darkshore.cpp + scripts/zone/deadmines/def_deadmines.h + scripts/zone/deadmines/deadmines.cpp + scripts/zone/dun_morogh/dun_morogh.cpp + scripts/zone/dustwallow_marsh/dustwallow_marsh.cpp + scripts/zone/eastern_plaguelands/eastern_plaguelands.cpp + scripts/zone/elwynn_forest/elwynn_forest.cpp + scripts/zone/eversong_woods/eversong_woods.cpp + scripts/zone/felwood/felwood.cpp + scripts/zone/feralas/feralas.cpp + scripts/zone/ghostlands/ghostlands.cpp + scripts/zone/gruuls_lair/boss_gruul.cpp + scripts/zone/gruuls_lair/boss_high_king_maulgar.cpp + scripts/zone/gruuls_lair/def_gruuls_lair.h + scripts/zone/gruuls_lair/instance_gruuls_lair.cpp + scripts/zone/hellfire_citadel/blood_furnace/boss_broggok.cpp + scripts/zone/hellfire_citadel/blood_furnace/boss_kelidan_the_breaker.cpp + scripts/zone/hellfire_citadel/blood_furnace/boss_the_maker.cpp + scripts/zone/hellfire_citadel/hellfire_ramparts/boss_omor_the_unscarred.cpp + scripts/zone/hellfire_citadel/hellfire_ramparts/boss_watchkeeper_gargolmar.cpp + scripts/zone/hellfire_citadel/magtheridons_lair/boss_magtheridon.cpp + scripts/zone/hellfire_citadel/magtheridons_lair/def_magtheridons_lair.h + scripts/zone/hellfire_citadel/magtheridons_lair/instance_magtheridons_lair.cpp + scripts/zone/hellfire_citadel/shattered_halls/boss_nethekurse.cpp + scripts/zone/hellfire_citadel/shattered_halls/boss_warbringer_omrogg.cpp + scripts/zone/hellfire_citadel/shattered_halls/def_shattered_halls.h + scripts/zone/hellfire_citadel/shattered_halls/instance_shattered_halls.cpp + scripts/zone/hellfire_citadel/shattered_halls/boss_warchief_kargath_bladefist.cpp + scripts/zone/hellfire_peninsula/boss_doomlord_kazzak.cpp + scripts/zone/hellfire_peninsula/hellfire_peninsula.cpp + scripts/zone/ironforge/ironforge.cpp + scripts/zone/isle_of_queldanas/isle_of_queldanas.cpp + scripts/zone/karazhan/boss_curator.cpp + scripts/zone/karazhan/boss_maiden_of_virtue.cpp + scripts/zone/karazhan/boss_midnight.cpp + scripts/zone/karazhan/boss_moroes.cpp + scripts/zone/karazhan/boss_netherspite.cpp + scripts/zone/karazhan/boss_nightbane.cpp + scripts/zone/karazhan/boss_prince_malchezaar.cpp + scripts/zone/karazhan/boss_shade_of_aran.cpp + scripts/zone/karazhan/boss_terestian_illhoof.cpp + scripts/zone/karazhan/bosses_opera.cpp + scripts/zone/karazhan/def_karazhan.h + scripts/zone/karazhan/instance_karazhan.cpp + scripts/zone/karazhan/karazhan.cpp + scripts/zone/loch_modan/loch_modan.cpp + scripts/zone/magisters_terrace/boss_felblood_kaelthas.cpp + scripts/zone/magisters_terrace/boss_priestess_delrissa.cpp + scripts/zone/magisters_terrace/boss_selin_fireheart.cpp + scripts/zone/magisters_terrace/boss_vexallus.cpp + scripts/zone/magisters_terrace/def_magisters_terrace.h + scripts/zone/magisters_terrace/instance_magisters_terrace.cpp + scripts/zone/maraudon/boss_celebras_the_cursed.cpp + scripts/zone/maraudon/boss_landslide.cpp + scripts/zone/maraudon/boss_noxxion.cpp + scripts/zone/maraudon/boss_princess_theradras.cpp + scripts/zone/molten_core/boss_baron_geddon.cpp + scripts/zone/molten_core/boss_garr.cpp + scripts/zone/molten_core/boss_gehennas.cpp + scripts/zone/molten_core/boss_golemagg.cpp + scripts/zone/molten_core/boss_lucifron.cpp + scripts/zone/molten_core/boss_magmadar.cpp + scripts/zone/molten_core/boss_majordomo_executus.cpp + scripts/zone/molten_core/boss_ragnaros.cpp + scripts/zone/molten_core/boss_shazzrah.cpp + scripts/zone/molten_core/boss_sulfuron_harbinger.cpp + scripts/zone/molten_core/def_molten_core.h + scripts/zone/molten_core/instance_molten_core.cpp + scripts/zone/molten_core/molten_core.cpp + scripts/zone/moonglade/moonglade.cpp + scripts/zone/mulgore/mulgore.cpp + scripts/zone/nagrand/nagrand.cpp + scripts/zone/naxxramas/boss_anubrekhan.cpp + scripts/zone/naxxramas/boss_faerlina.cpp + scripts/zone/naxxramas/boss_gluth.cpp + scripts/zone/naxxramas/boss_gothik.cpp + scripts/zone/naxxramas/boss_grobbulus.cpp + scripts/zone/naxxramas/boss_heigan.cpp + scripts/zone/naxxramas/boss_highlord_mograine.cpp + scripts/zone/naxxramas/boss_kelthuzad.cpp + scripts/zone/naxxramas/boss_four_horsemen.cpp + scripts/zone/naxxramas/boss_loatheb.cpp + scripts/zone/naxxramas/boss_maexxna.cpp + scripts/zone/naxxramas/boss_noth.cpp + scripts/zone/naxxramas/boss_patchwerk.cpp + scripts/zone/naxxramas/boss_razuvious.cpp + scripts/zone/naxxramas/boss_sapphiron.cpp + scripts/zone/naxxramas/boss_thaddius.cpp + scripts/zone/naxxramas/instance_naxxramas.cpp + scripts/zone/netherstorm/netherstorm.cpp + scripts/zone/onyxias_lair/boss_onyxia.cpp + scripts/zone/orgrimmar/orgrimmar.cpp + scripts/zone/razorfen_downs/boss_amnennar_the_coldbringer.cpp + scripts/zone/razorfen_kraul/razorfen_kraul.cpp + scripts/zone/ruins_of_ahnqiraj/boss_ayamiss.cpp + scripts/zone/ruins_of_ahnqiraj/boss_buru.cpp + scripts/zone/ruins_of_ahnqiraj/boss_kurinnaxx.cpp + scripts/zone/ruins_of_ahnqiraj/boss_moam.cpp + scripts/zone/ruins_of_ahnqiraj/boss_ossirian.cpp + scripts/zone/ruins_of_ahnqiraj/boss_rajaxx.cpp + scripts/zone/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp + scripts/zone/scarlet_monastery/boss_arcanist_doan.cpp + scripts/zone/scarlet_monastery/boss_azshir_the_sleepless.cpp + scripts/zone/scarlet_monastery/boss_bloodmage_thalnos.cpp + scripts/zone/scarlet_monastery/boss_herod.cpp + scripts/zone/scarlet_monastery/boss_high_inquisitor_fairbanks.cpp + scripts/zone/scarlet_monastery/boss_houndmaster_loksey.cpp + scripts/zone/scarlet_monastery/boss_interrogator_vishas.cpp + scripts/zone/scarlet_monastery/boss_scorn.cpp + scripts/zone/scarlet_monastery/boss_headless_horseman.cpp + scripts/zone/scarlet_monastery/boss_mograine_and_whitemane.cpp + scripts/zone/scarlet_monastery/instance_scarlet_monastery.cpp + scripts/zone/scarlet_monastery/def_scarlet_monastery.h + scripts/zone/scholomance/boss_darkmaster_gandling.cpp + scripts/zone/scholomance/boss_death_knight_darkreaver.cpp + scripts/zone/scholomance/boss_doctor_theolen_krastinov.cpp + scripts/zone/scholomance/boss_illucia_barov.cpp + scripts/zone/scholomance/boss_instructor_malicia.cpp + scripts/zone/scholomance/boss_jandice_barov.cpp + scripts/zone/scholomance/boss_kormok.cpp + scripts/zone/scholomance/boss_lord_alexei_barov.cpp + scripts/zone/scholomance/boss_lorekeeper_polkelt.cpp + scripts/zone/scholomance/boss_ras_frostwhisper.cpp + scripts/zone/scholomance/boss_the_ravenian.cpp + scripts/zone/scholomance/boss_vectus.cpp + scripts/zone/scholomance/def_scholomance.h + scripts/zone/scholomance/instance_scholomance.cpp + scripts/zone/searing_gorge/searing_gorge.cpp + scripts/zone/shadowfang_keep/def_shadowfang_keep.h + scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp + scripts/zone/shadowfang_keep/shadowfang_keep.cpp + scripts/zone/shadowmoon_valley/boss_doomwalker.cpp + scripts/zone/shadowmoon_valley/shadowmoon_valley.cpp + scripts/zone/shattrath/shattrath_city.cpp + scripts/zone/silithus/silithus.cpp + scripts/zone/silvermoon/silvermoon_city.cpp + scripts/zone/silverpine_forest/silverpine_forest.cpp + scripts/zone/stonetalon_mountains/stonetalon_mountains.cpp + scripts/zone/stormwind/stormwind_city.cpp + scripts/zone/stranglethorn_vale/stranglethorn_vale.cpp + scripts/zone/stratholme/boss_baron_rivendare.cpp + scripts/zone/stratholme/boss_baroness_anastari.cpp + scripts/zone/stratholme/boss_cannon_master_willey.cpp + scripts/zone/stratholme/boss_dathrohan_balnazzar.cpp + scripts/zone/stratholme/boss_magistrate_barthilas.cpp + scripts/zone/stratholme/boss_maleki_the_pallid.cpp + scripts/zone/stratholme/boss_nerubenkan.cpp + scripts/zone/stratholme/boss_order_of_silver_hand.cpp + scripts/zone/stratholme/boss_postmaster_malown.cpp + scripts/zone/stratholme/boss_ramstein_the_gorger.cpp + scripts/zone/stratholme/boss_timmy_the_cruel.cpp + scripts/zone/stratholme/def_stratholme.h + scripts/zone/stratholme/instance_stratholme.cpp + scripts/zone/stratholme/stratholme.cpp + scripts/zone/sunwell_plateau/boss_eredar_twins.cpp + scripts/zone/sunwell_plateau/boss_felmyst.cpp + scripts/zone/sunwell_plateau/boss_brutallus.cpp + scripts/zone/sunwell_plateau/boss_kalecgos.cpp + scripts/zone/sunwell_plateau/def_sunwell_plateau.h + scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp + scripts/zone/tanaris/tanaris.cpp + scripts/zone/tempest_keep/arcatraz/arcatraz.cpp + scripts/zone/tempest_keep/arcatraz/boss_harbinger_skyriss.cpp + scripts/zone/tempest_keep/arcatraz/def_arcatraz.h + scripts/zone/tempest_keep/arcatraz/instance_arcatraz.cpp + scripts/zone/tempest_keep/botanica/boss_high_botanist_freywinn.cpp + scripts/zone/tempest_keep/botanica/boss_laj.cpp + scripts/zone/tempest_keep/botanica/boss_warp_splinter.cpp + scripts/zone/tempest_keep/the_eye/boss_alar.cpp + scripts/zone/tempest_keep/the_eye/boss_astromancer.cpp + scripts/zone/tempest_keep/the_eye/boss_kaelthas.cpp + scripts/zone/tempest_keep/the_eye/boss_void_reaver.cpp + scripts/zone/tempest_keep/the_eye/def_the_eye.h + scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp + scripts/zone/tempest_keep/the_eye/the_eye.cpp + scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_gyrokill.cpp + scripts/zone/tempest_keep/the_mechanar/boss_gatewatcher_ironhand.cpp + scripts/zone/tempest_keep/the_mechanar/boss_nethermancer_sepethrea.cpp + scripts/zone/tempest_keep/the_mechanar/boss_pathaleon_the_calculator.cpp + scripts/zone/tempest_keep/the_mechanar/def_mechanar.h + scripts/zone/tempest_keep/the_mechanar/instance_mechanar.cpp + scripts/zone/temple_of_ahnqiraj/boss_bug_trio.cpp + scripts/zone/temple_of_ahnqiraj/boss_cthun.cpp + scripts/zone/temple_of_ahnqiraj/boss_fankriss.cpp + scripts/zone/temple_of_ahnqiraj/boss_huhuran.cpp + scripts/zone/temple_of_ahnqiraj/boss_ouro.cpp + scripts/zone/temple_of_ahnqiraj/boss_sartura.cpp + scripts/zone/temple_of_ahnqiraj/boss_skeram.cpp + scripts/zone/temple_of_ahnqiraj/boss_twinemperors.cpp + scripts/zone/temple_of_ahnqiraj/boss_viscidus.cpp + scripts/zone/temple_of_ahnqiraj/def_temple_of_ahnqiraj.h + scripts/zone/temple_of_ahnqiraj/instance_temple_of_ahnqiraj.cpp + scripts/zone/temple_of_ahnqiraj/mob_anubisath_sentinel.cpp + scripts/zone/terokkar_forest/terokkar_forest.cpp + scripts/zone/thunder_bluff/thunder_bluff.cpp + scripts/zone/tirisfal_glades/tirisfal_glades.cpp + scripts/zone/thousand_needles/thousand_needles.cpp + scripts/zone/uldaman/boss_archaedas.cpp + scripts/zone/uldaman/instance_uldaman.cpp + scripts/zone/uldaman/boss_ironaya.cpp + scripts/zone/uldaman/uldaman.cpp + scripts/zone/undercity/undercity.cpp + scripts/zone/wailing_caverns/instance_wailing_caverns.cpp + scripts/zone/western_plaguelands/western_plaguelands.cpp + scripts/zone/westfall/westfall.cpp + scripts/zone/winterspring/winterspring.cpp + scripts/zone/zangarmarsh/zangarmarsh.cpp + scripts/zone/zulaman/boss_akilzon.cpp + scripts/zone/zulaman/boss_halazzi.cpp + scripts/zone/zulaman/boss_hexlord.cpp + scripts/zone/zulaman/boss_janalai.cpp + scripts/zone/zulaman/boss_nalorakk.cpp + scripts/zone/zulaman/boss_zuljin.cpp + scripts/zone/zulaman/def_zulaman.h + scripts/zone/zulaman/instance_zulaman.cpp + scripts/zone/zulaman/zulaman.cpp + scripts/zone/zulfarrak/zulfarrak.cpp + scripts/zone/zulgurub/boss_arlokk.cpp + scripts/zone/zulgurub/boss_gahzranka.cpp + scripts/zone/zulgurub/boss_grilek.cpp + scripts/zone/zulgurub/boss_hakkar.cpp + scripts/zone/zulgurub/boss_hazzarah.cpp + scripts/zone/zulgurub/boss_jeklik.cpp + scripts/zone/zulgurub/boss_jindo.cpp + scripts/zone/zulgurub/boss_mandokir.cpp + scripts/zone/zulgurub/boss_marli.cpp + scripts/zone/zulgurub/boss_renataki.cpp + scripts/zone/zulgurub/boss_thekal.cpp + scripts/zone/zulgurub/boss_venoxis.cpp + scripts/zone/zulgurub/boss_wushoolay.cpp + scripts/zone/zulgurub/def_zulgurub.h + scripts/zone/zulgurub/instance_zulgurub.cpp + system.cpp +) + +add_library(trinityscript STATIC ${trinityscript_LIB_SRCS}) + +target_link_libraries(trinityscript) + +set_target_properties(trinityscript PROPERTIES VERSION 4.2.0 SOVERSION 4) +install(TARGETS trinityscript DESTINATION lib) + diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt new file mode 100644 index 00000000000..41ca661de98 --- /dev/null +++ b/src/framework/CMakeLists.txt @@ -0,0 +1,8 @@ +SET(trinityframework_STAT_SRCS + Policies/ObjectLifeTime.cpp + Utilities/EventProcessor.cpp +) +include_directories( +${CMAKE_CURRENT_SRC_DIR} +) +add_library(trinityframework STATIC ${trinityframework_STAT_SRCS}) diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt new file mode 100644 index 00000000000..db1e31f2414 --- /dev/null +++ b/src/game/CMakeLists.txt @@ -0,0 +1,266 @@ + +########### next target ############### + +SET(game_STAT_SRCS + AccountMgr.cpp + AccountMgr.h + AddonHandler.cpp + AddonHandler.h + AggressorAI.cpp + AggressorAI.h + AnimalRandomMovementGenerator.h + ArenaTeam.cpp + ArenaTeam.h + ArenaTeamHandler.cpp + AuctionHouse.cpp + AuctionHouseObject.h + Bag.cpp + Bag.h + BattleGround.cpp + BattleGroundAA.cpp + BattleGroundAB.cpp + BattleGroundAV.cpp + BattleGroundBE.cpp + BattleGroundEY.cpp + BattleGroundNA.cpp + BattleGroundRL.cpp + BattleGroundWS.cpp + BattleGround.h + BattleGroundAA.h + BattleGroundAB.h + BattleGroundAV.h + BattleGroundBE.h + BattleGroundEY.h + BattleGroundNA.h + BattleGroundRL.h + BattleGroundWS.h + BattleGroundHandler.cpp + BattleGroundMgr.cpp + BattleGroundMgr.h + Cell.h + CellImpl.h + Channel.cpp + Channel.h + ChannelHandler.cpp + ChannelMgr.h + CharacterHandler.cpp + Chat.cpp + Chat.h + ChatHandler.cpp + CombatHandler.cpp + ConfusedMovementGenerator.cpp + ConfusedMovementGenerator.h + Corpse.cpp + Corpse.h + CreatureAI.cpp + CreatureAI.h + CreatureAIImpl.h + CreatureAIRegistry.cpp + CreatureAIRegistry.h + CreatureAISelector.cpp + CreatureAISelector.h + Creature.cpp + Creature.h + CreatureGroups.cpp + CreatureGroups.h + debugcmds.cpp + DestinationHolder.cpp + DestinationHolder.h + DestinationHolderImp.h + DuelHandler.cpp + DynamicObject.cpp + DynamicObject.h + FleeingMovementGenerator.cpp + FleeingMovementGenerator.h + Formulas.h + GameEvent.cpp + GameEvent.h + GameObject.cpp + GameObject.h + GlobalEvents.cpp + GlobalEvents.h + GossipDef.cpp + GossipDef.h + GridDefines.h + GridNotifiers.cpp + GridNotifiers.h + GridNotifiersImpl.h + GridStates.cpp + GridStates.h + Group.cpp + Group.h + GroupHandler.cpp + GuardAI.cpp + GuardAI.h + Guild.cpp + Guild.h + GuildHandler.cpp + HomeMovementGenerator.cpp + HomeMovementGenerator.h + HostilRefManager.cpp + HostilRefManager.h + IdleMovementGenerator.cpp + IdleMovementGenerator.h + InstanceData.cpp + InstanceData.h + InstanceSaveMgr.cpp + InstanceSaveMgr.h + Item.cpp + Item.h + ItemEnchantmentMgr.cpp + ItemEnchantmentMgr.h + ItemHandler.cpp + ItemPrototype.h + Language.h + Level0.cpp + Level1.cpp + Level2.cpp + Level3.cpp + LFGHandler.cpp + LootHandler.cpp + LootMgr.cpp + LootMgr.h + Mail.cpp + Mail.h + Map.cpp + Map.h + MapInstanced.cpp + MapInstanced.h + MapManager.cpp + MapManager.h + MiscHandler.cpp + MotionMaster.cpp + MotionMaster.h + MovementGenerator.cpp + MovementGenerator.h + MovementGeneratorImpl.h + MovementHandler.cpp + NPCHandler.cpp + NPCHandler.h + NullCreatureAI.cpp + NullCreatureAI.h + ObjectAccessor.cpp + ObjectAccessor.h + Object.cpp + ObjectDefines.h + ObjectGridLoader.cpp + ObjectGridLoader.h + Object.h + ObjectMgr.cpp + ObjectMgr.h + Opcodes.cpp + Opcodes.h + OutdoorPvP.cpp + OutdoorPvP.h + OutdoorPvPEP.cpp + OutdoorPvPEP.h + OutdoorPvPHP.cpp + OutdoorPvPHP.h + OutdoorPvPMgr.cpp + OutdoorPvPMgr.h + OutdoorPvPNA.cpp + OutdoorPvPNA.h + OutdoorPvPObjectiveAI.cpp + OutdoorPvPObjectiveAI.h + OutdoorPvPSI.cpp + OutdoorPvPSI.h + OutdoorPvPTF.cpp + OutdoorPvPTF.h + OutdoorPvPZM.cpp + OutdoorPvPZM.h + Path.h + PetAI.cpp + PetAI.h + Pet.cpp + Pet.h + PetHandler.cpp + PetitionsHandler.cpp + Player.cpp + Player.h + PlayerDump.cpp + PlayerDump.h + PointMovementGenerator.cpp + PointMovementGenerator.h + PossessedAI.cpp + PossessedAI.h + QueryHandler.cpp + QuestDef.cpp + QuestDef.h + QuestHandler.cpp + RandomMovementGenerator.cpp + RandomMovementGenerator.h + ReactorAI.cpp + ReactorAI.h + ScriptCalls.cpp + ScriptCalls.h + SharedDefines.h + SkillHandler.cpp + SpellAuraDefines.h + SpellAuras.cpp + SpellAuras.h + Spell.cpp + SpellEffects.cpp + Spell.h + SkillDiscovery.cpp + SkillDiscovery.h + SkillExtraItems.cpp + SkillExtraItems.h + SpellHandler.cpp + SocialMgr.cpp + SocialMgr.h + SpellMgr.cpp + SpellMgr.h + StatSystem.cpp + TargetedMovementGenerator.cpp + TargetedMovementGenerator.h + TaxiHandler.cpp + TemporarySummon.cpp + TemporarySummon.h + TicketHandler.cpp + TicketMgr.cpp + TicketMgr.h + tools.cpp + Tools.h + TotemAI.cpp + TotemAI.h + Totem.cpp + Totem.h + TradeHandler.cpp + Transports.cpp + Transports.h + ThreatManager.cpp + ThreatManager.h + Traveller.h + Unit.cpp + Unit.h + UnitEvents.h + UpdateData.cpp + UpdateData.h + UpdateFields.h + UpdateMask.h + VoiceChatHandler.cpp + WaypointManager.cpp + WaypointManager.h + WaypointMovementGenerator.cpp + WaypointMovementGenerator.h + Weather.cpp + Weather.h + World.cpp + World.h + WorldLog.cpp + WorldLog.h + WorldSession.cpp + WorldSession.h + WorldSocket.cpp + WorldSocket.h + WorldSocketMgr.cpp + WorldSocketMgr.h + FollowerReference.cpp + FollowerReference.h + FollowerRefManager.h + GroupReference.cpp + GroupReference.h + GroupRefManager.h +) + +add_library(game STATIC ${game_STAT_SRCS}) diff --git a/src/shared/Auth/CMakeLists.txt b/src/shared/Auth/CMakeLists.txt new file mode 100644 index 00000000000..f0714509e1d --- /dev/null +++ b/src/shared/Auth/CMakeLists.txt @@ -0,0 +1,17 @@ + +########### next target ############### + +SET(trinityauth_STAT_SRCS + AuthCrypt.cpp + AuthCrypt.h + BigNumber.cpp + BigNumber.h + Hmac.cpp + Hmac.h + Sha1.cpp + Sha1.h + md5.c + md5.h +) + +add_library(trinityauth STATIC ${trinityauth_STAT_SRCS}) diff --git a/src/shared/CMakeLists.txt b/src/shared/CMakeLists.txt new file mode 100644 index 00000000000..006fa284c5d --- /dev/null +++ b/src/shared/CMakeLists.txt @@ -0,0 +1,29 @@ + +add_subdirectory(vmap) +add_subdirectory(Auth) +add_subdirectory(Config) +add_subdirectory(Database) + +########### next target ############### + +SET(shared_STAT_SRCS + Base.cpp + Base.h + ByteBuffer.h + Common.cpp + Common.h + Errors.h + Log.cpp + Log.h + Mthread.cpp + Mthread.h + ProgressBar.cpp + ProgressBar.h + Timer.h + Util.cpp + Util.h + WorldPacket.h + SystemConfig.h +) + +add_library(shared STATIC ${shared_STAT_SRCS}) diff --git a/src/shared/Config/CMakeLists.txt b/src/shared/Config/CMakeLists.txt new file mode 100644 index 00000000000..54c3d80b869 --- /dev/null +++ b/src/shared/Config/CMakeLists.txt @@ -0,0 +1,15 @@ + +########### next target ############### + +SET(trinityconfig_STAT_SRCS + dotconfpp/dotconfpp.cpp + dotconfpp/dotconfpp.h + dotconfpp/mempool.cpp + dotconfpp/mempool.h + Config.cpp + Config.h + ConfigEnv.h +) + +add_library(trinityconfig STATIC ${trinityconfig_STAT_SRCS}) + diff --git a/src/shared/Database/CMakeLists.txt b/src/shared/Database/CMakeLists.txt new file mode 100644 index 00000000000..a819a66dec7 --- /dev/null +++ b/src/shared/Database/CMakeLists.txt @@ -0,0 +1,38 @@ +SET(trinitydatabase_STAT_SRCS + DBCStores.cpp + DBCStores.h + DBCStructure.h + DBCfmt.cpp + Database.cpp + Database.h + DatabaseEnv.h + DatabaseImpl.h + DatabaseMysql.cpp + DatabasePostgre.cpp + DatabaseMysql.h + DatabasePostgre.h + DatabaseSqlite.cpp + DatabaseSqlite.h +#Brian likes men + Field.cpp + Field.h + MySQLDelayThread.h + PGSQLDelayThread.h + QueryResult.h + QueryResultMysql.cpp + QueryResultMysql.h + QueryResultPostgre.cpp + QueryResultPostgre.h + QueryResultSqlite.cpp + QueryResultSqlite.h + SQLStorage.cpp + SQLStorage.h + SqlDelayThread.cpp + SqlDelayThread.h + SqlOperations.cpp + SqlOperations.h + dbcfile.cpp + dbcfile.h +) + +add_library(trinitydatabase STATIC ${trinitydatabase_STAT_SRCS}) diff --git a/src/shared/vmap/CMakeLists.txt b/src/shared/vmap/CMakeLists.txt new file mode 100644 index 00000000000..9ed30c0b44f --- /dev/null +++ b/src/shared/vmap/CMakeLists.txt @@ -0,0 +1,35 @@ + +########### next target ############### + +SET(vmaps_STAT_SRCS + AABSPTree.h + BaseModel.cpp + BaseModel.h + CoordModelMapping.cpp + CoordModelMapping.h + DebugCmdLogger.cpp + DebugCmdLogger.h + IVMapManager.h + ManagedModelContainer.cpp + ManagedModelContainer.h + ModelContainer.cpp + ModelContainer.h + NodeValueAccess.h + ShortBox.h + ShortVector.h + SubModel.cpp + SubModel.h + TileAssembler.cpp + TileAssembler.h + TreeNode.cpp + TreeNode.h + VMapDefinitions.h + VMapFactory.cpp + VMapFactory.h + VMapManager.cpp + VMapManager.h + VMapTools.h +) + +add_library(vmaps STATIC ${vmaps_STAT_SRCS}) + diff --git a/src/trinitycore/CMakeLists.txt b/src/trinitycore/CMakeLists.txt new file mode 100644 index 00000000000..72ceca8dd33 --- /dev/null +++ b/src/trinitycore/CMakeLists.txt @@ -0,0 +1,53 @@ + +########### next target ############### + +SET(trinity-core_SRCS +CliRunnable.cpp +CliRunnable.h +Main.cpp +Master.cpp +Master.h +RASocket.cpp +RASocket.h +WorldRunnable.cpp +WorldRunnable.h +) + +add_executable(trinity-core ${trinity-core_SRCS}) +add_definitions( +-D_TRINITY_CORE_CONFIG='"${CONF_DIR}/trinitycore.conf"' +) +IF (DO_MYSQL) + SET_TARGET_PROPERTIES(trinity-core PROPERTIES LINK_FLAGS "-pthread") +ENDIF(DO_MYSQL) + + + +target_link_libraries( +trinity-core +game +shared +zlib +trinityframework +trinitysockets +trinitydatabase +trinityauth +trinityconfig +vmaps +ZThread +g3dlite +${SCRIPT_LIB} +${MYSQL_LIBRARIES} +${POSTGRE_LIBS} +${SSLLIB} +${ACE_LIBRARY} +${ZLIB} +) + +install(TARGETS trinity-core DESTINATION bin) + + +########### install files ############### + +install(FILES trinitycore.conf.dist DESTINATION etc) + diff --git a/src/trinityrealm/CMakeLists.txt b/src/trinityrealm/CMakeLists.txt new file mode 100644 index 00000000000..cddea04ea47 --- /dev/null +++ b/src/trinityrealm/CMakeLists.txt @@ -0,0 +1,45 @@ +########### next target ############### + +SET(trinity-realm_SRCS +AuthCodes.h +AuthSocket.cpp +AuthSocket.h +Main.cpp +RealmList.cpp +RealmList.h +) + +add_executable(trinity-realm ${trinity-realm_SRCS}) +add_definitions( +-D_TRINITY_REALM_CONFIG='"${CONF_DIR}/trinityrealm.conf"' +) +IF (DO_MYSQL) + #SET_TARGET_PROPERTIES(mangos-realmd PROPERTIES LINK_FLAGS ${MYSQL_LIBS}) + SET_TARGET_PROPERTIES(trinity-realm PROPERTIES LINK_FLAGS "-pthread") +ENDIF(DO_MYSQL) +IF (DO_POSTGRE) + SET_TARGET_PROPERTIES(trinity-realmd PROPERTIES LINK_FLAGS ${POSTGRE_LIBS}) +ENDIF(DO_POSTGRE) + + +target_link_libraries( +trinity-realm +shared +trinityframework +trinitysockets +trinitydatabase +trinityauth +trinityconfig +ZThread +zlib +${SSLLIB} +${MYSQL_LIBRARIES} +) + +install(TARGETS trinity-realm DESTINATION bin) + + +########### install files ############### + +install(FILES trinityrealm.conf.dist DESTINATION etc) + |