diff --git a/CMakeLists.txt b/CMakeLists.txt index ec0d5b1fb..02c3618de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,42 +1,24 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.10) -IF(POLICY CMP0074) - cmake_policy(SET CMP0074 NEW) -ENDIF() -#FindMySQL is located here so lets make it so CMake can find it SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/" ${CMAKE_MODULE_PATH}) -#Our project name is EQEmu PROJECT(EQEmu) -#Default build type is set to RelWithDebInfo for generators that honor that like makefiles IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) -SET(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}/dependencies" "${CMAKE_PREFIX_PATH}") - SET(CMAKE_CXX_STANDARD 14) SET(CMAKE_CXX_STANDARD_REQUIRED ON) SET(CMAKE_CXX_EXTENSIONS OFF) IF(MSVC) ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) - - #crash logging currently only works on windows x86/x64 - OPTION(EQEMU_ENABLE_CRASH_LOGGING "Enable crash logging" ON) - IF(EQEMU_ENABLE_CRASH_LOGGING) - ADD_DEFINITIONS(-DCRASH_LOGGING) - ENDIF(EQEMU_ENABLE_CRASH_LOGGING) - - OPTION(EQEMU_BUILD_MSVC_MP "Enable build with multiple processes." ON) - IF(EQEMU_BUILD_MSVC_MP) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") - ENDIF(EQEMU_BUILD_MSVC_MP) - ADD_DEFINITIONS(-DNOMINMAX) + ADD_DEFINITIONS(-DCRASH_LOGGING) + + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") ELSE(MSVC) - #Normally set by perl but we don't use the perl flags anymore so we set it. ADD_DEFINITIONS(-DHAS_UNION_SEMUN) ENDIF(MSVC) @@ -53,35 +35,13 @@ IF(UNIX) ENDIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") ENDIF(UNIX) -#NPC Types Cache Behavior -OPTION(EQEMU_DEPOP_INVALIDATES_CACHE "#repop invalidates the npc_types cache (will cause a larger database hit on #repop but is more convienent)." ON) - -#Bots are a compile time option so on/off -OPTION(EQEMU_ENABLE_BOTS "Enable Bots" OFF) - -#Enable GM Command log system -OPTION(EQEMU_COMMANDS_LOGGING "Enable GM Command logs" ON) - -IF(EQEMU_COMMANDS_LOGGING) - ADD_DEFINITIONS(-DCOMMANDS_LOGGING) -ENDIF(EQEMU_COMMANDS_LOGGING) - -IF(EQEMU_ENABLE_BOTS) - ADD_DEFINITIONS(-DBOTS) -ENDIF(EQEMU_ENABLE_BOTS) - -#What to build -OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) -OPTION(EQEMU_BUILD_HC "Build the headless client." OFF) -OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) -OPTION(EQEMU_BUILD_CLIENT_FILES "Build Client Import/Export Data Programs." ON) - ADD_DEFINITIONS(-DGLM_FORCE_RADIANS) ADD_DEFINITIONS(-DGLM_FORCE_CTOR_INIT) ADD_DEFINITIONS(-DGLM_ENABLE_EXPERIMENTAL) #Find everything we need -FIND_PACKAGE(MySQL REQUIRED) +FIND_PACKAGE(MySQL) +FIND_PACKAGE(MariaDB) FIND_PACKAGE(Boost REQUIRED) FIND_PACKAGE(ZLIB) FIND_PACKAGE(OpenSSL) @@ -94,18 +54,24 @@ MESSAGE(STATUS "**************************************************") MESSAGE(STATUS "* Library Detection *") MESSAGE(STATUS "**************************************************") +IF(MYSQL_FOUND) + MESSAGE(STATUS "* MySQL: FOUND *") +ELSE() + MESSAGE(STATUS "* MySQL: MISSING *") +ENDIF() + +IF(MARIADB_FOUND) + MESSAGE(STATUS "* MariaDB: FOUND *") +ELSE() + MESSAGE(STATUS "* MariaDB: MISSING *") +ENDIF() + IF(ZLIB_FOUND) MESSAGE(STATUS "* ZLIB: FOUND *") ELSE() MESSAGE(STATUS "* ZLIB: MISSING *") ENDIF() -IF(OpenSSL_FOUND) - MESSAGE(STATUS "* OpenSSL: FOUND *") -ELSE() - MESSAGE(STATUS "* OpenSSL: MISSING *") -ENDIF() - IF(Lua51_FOUND) MESSAGE(STATUS "* Lua: FOUND *") ELSE() @@ -124,6 +90,12 @@ ELSE() MESSAGE(STATUS "* libsodium: MISSING *") ENDIF() +IF(OpenSSL_FOUND) + MESSAGE(STATUS "* OpenSSL: FOUND *") +ELSE() + MESSAGE(STATUS "* OpenSSL: MISSING *") +ENDIF() + IF(MBEDTLS_FOUND) MESSAGE(STATUS "* mbedTLS: FOUND *") ELSE() @@ -132,7 +104,171 @@ ENDIF() MESSAGE(STATUS "**************************************************") -SET(SERVER_LIBS common debug ${MySQL_LIBRARY_DEBUG} optimized ${MySQL_LIBRARY_RELEASE} ${Boost_LIBRARIES} uv_a fmt RecastNavigation::Detour) +#options +OPTION(EQEMU_DEPOP_INVALIDATES_CACHE "#repop invalidates the npc_types cache (will cause a larger database hit on #repop but is more convienent)." ON) +OPTION(EQEMU_ENABLE_BOTS "Enable Bots" OFF) +OPTION(EQEMU_COMMANDS_LOGGING "Enable GM Command logs" ON) +OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) +OPTION(EQEMU_BUILD_HC "Build the headless client." OFF) +OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) +OPTION(EQEMU_BUILD_CLIENT_FILES "Build Client Import/Export Data Programs." ON) + +IF(EQEMU_COMMANDS_LOGGING) + ADD_DEFINITIONS(-DCOMMANDS_LOGGING) +ENDIF(EQEMU_COMMANDS_LOGGING) + +IF(EQEMU_ENABLE_BOTS) + ADD_DEFINITIONS(-DBOTS) +ENDIF(EQEMU_ENABLE_BOTS) + +#database +#prefer mariadb to mysql (arbitrary) +IF(MySQL_FOUND AND MariaDB_FOUND) + SET(DATABASE_LIBRARY_TYPE "MariaDB") + SET(DATABASE_LIBRARY_LIBS ${MariaDB_LIBRARIES}) + SET(DATABASE_LIBRARY_INCLUDE ${MariaDB_INCLUDE_DIR}) +ELSEIF(MariaDB_FOUND) + SET(DATABASE_LIBRARY_TYPE "MariaDB") + SET(DATABASE_LIBRARY_LIBS ${MariaDB_LIBRARIES}) + SET(DATABASE_LIBRARY_INCLUDE ${MariaDB_INCLUDE_DIR}) +ELSEIF(MySQL_FOUND) + SET(DATABASE_LIBRARY_TYPE " MySQL") + SET(DATABASE_LIBRARY_LIBS ${MySQL_LIBRARIES}) + SET(DATABASE_LIBRARY_INCLUDE ${MySQL_INCLUDE_DIR}) +ELSE() + MESSAGE(FATAL_ERROR "One of MySQL or MariaDB is a required dependency.") +ENDIF() + +#security +#prefer openssl to mbedtls (arbitrary) +IF(OpenSSL_FOUND AND MBEDTLS_FOUND) + SET(SSL_LIBRARY_TYPE " OpenSSL") + SET(SSL_LIBRARY_ENABLED ON) + SET(SSL_LIBRARY_LIBS ${OPENSSL_LIBRARIES}) + SET(SSL_LIBRARY_INCLUDE ${OPENSSL_INCLUDE_DIR}) +ELSEIF(OpenSSL_FOUND) + SET(SSL_LIBRARY_TYPE " OpenSSL") + SET(SSL_LIBRARY_ENABLED ON) + SET(SSL_LIBRARY_LIBS ${OPENSSL_LIBRARIES}) + SET(SSL_LIBRARY_INCLUDE ${OPENSSL_INCLUDE_DIR}) +ELSEIF(MBEDTLS_FOUND) + SET(SSL_LIBRARY_TYPE " mbedTLS") + SET(SSL_LIBRARY_ENABLED ON) + SET(SSL_LIBRARY_LIBS ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY}) + SET(SSL_LIBRARY_INCLUDE ${MBEDTLS_INCLUDE_DIR}) +ELSE() + SET(SSL_LIBRARY_TYPE "Disabled") + SET(SSL_LIBRARY_ENABLED OFF) +ENDIF() + +IF(SODIUM_FOUND) + SET(SODIUM_LIBRARY_TYPE "Libsodium") + SET(SODIUM_LIBRARY_ENABLED ON) + SET(SODIUM_LIBRARY_LIBS ${SODIUM_LIBRARIES}) + SET(SODIUM_LIBRARY_INCLUDE ${SODIUM_INCLUDE_DIRS}) + ADD_DEFINITIONS(-DENABLE_SECURITY) +ELSE() + SET(SODIUM_LIBRARY_TYPE " Disabled") + SET(SODIUM_LIBRARY_ENABLED OFF) +ENDIF() + +IF(Lua51_FOUND) + SET(LUA_LIBRARY_TYPE " Lua 5.1") + SET(LUA_LIBRARY_LIBS ${LUA_LIBRARY} luabind) + SET(LUA_LIBRARY_INCLUDE ${LUA_INCLUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/libs/luabind") + + OPTION(EQEMU_BUILD_LUA "Build Lua parser." ON) + IF(EQEMU_BUILD_LUA) + ADD_DEFINITIONS(-DLUA_EQEMU) + OPTION(EQEMU_SANITIZE_LUA_LIBS "Sanitize Lua Libraries (Remove OS and IO standard libraries from being able to run)." ON) + IF(EQEMU_SANITIZE_LUA_LIBS) + ADD_DEFINITIONS(-DSANITIZE_LUA_LIBS) + ENDIF() + ENDIF() +ELSE() + SET(LUA_LIBRARY_TYPE "Disabled") +ENDIF() + +IF(PerlLibs_FOUND) + SET(PERL_LIBRARY_TYPE " Perl") + SET(PERL_LIBRARY_LIBS ${PERL_LIBRARY}) + SET(PERL_LIBRARY_INCLUDE ${PERL_INCLUDE_PATH}) + + OPTION(EQEMU_BUILD_PERL "Build Perl parser." ON) + IF(EQEMU_BUILD_PERL) + ADD_DEFINITIONS(-DEMBPERL) + ADD_DEFINITIONS(-DEMBPERL_PLUGIN) + ENDIF() +ELSE() + SET(PERL_LIBRARY_TYPE "Disabled") +ENDIF() + +#use zlib if exists +IF(ZLIB_FOUND) + OPTION(EQEMU_BUILD_ZLIB "Build internal version of zlib." OFF) + IF(EQEMU_BUILD_ZLIB) + SET(ZLIB_LIBRARY_TYPE "zlib-ng") + SET(ZLIB_LIBRARY_LIBS "zlibstatic") + SET(ZLIB_LIBRARY_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") + ELSE() + SET(ZLIB_LIBRARY_TYPE " zlib") + SET(ZLIB_LIBRARY_LIBS ${ZLIB_LIBRARY}) + SET(ZLIB_LIBRARY_INCLUDE ${ZLIB_INCLUDE_DIRS}) + ENDIF() +ELSE() + SET(ZLIB_LIBRARY_TYPE "zlib-ng") + SET(ZLIB_LIBRARY_LIBS "zlibstatic") + SET(ZLIB_LIBRARY_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") +ENDIF() + +MESSAGE(STATUS "") +MESSAGE(STATUS "**************************************************") +MESSAGE(STATUS "* Library Usage *") +MESSAGE(STATUS "**************************************************") +MESSAGE(STATUS "* Database: ${DATABASE_LIBRARY_TYPE} *") +MESSAGE(STATUS "* TLS: ${SSL_LIBRARY_TYPE} *") +MESSAGE(STATUS "* Sodium: ${SODIUM_LIBRARY_TYPE} *") +MESSAGE(STATUS "* Lua: ${LUA_LIBRARY_TYPE} *") +MESSAGE(STATUS "* Perl: ${PERL_LIBRARY_TYPE} *") +MESSAGE(STATUS "* zlib: ${ZLIB_LIBRARY_TYPE} *") +MESSAGE(STATUS "**************************************************") + +#setup server libs and headers +SET(SERVER_LIBS common ${DATABASE_LIBRARY_LIBS} ${ZLIB_LIBRARY_LIBS} ${Boost_LIBRARIES} uv_a fmt RecastNavigation::Detour) + +INCLUDE_DIRECTORIES(SYSTEM "${DATABASE_LIBRARY_INCLUDE}") +INCLUDE_DIRECTORIES(SYSTEM "${ZLIB_LIBRARY_INCLUDE}") +INCLUDE_DIRECTORIES(SYSTEM "${Boost_INCLUDE_DIRS}") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/glm") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/cereal/include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/fmt/include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/libuv/include" ) +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DebugUtils/Include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/Detour/Include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DetourCrowd/Include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DetourTileCache/Include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/Recast/Include") +INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/websocketpp") + +IF(SSL_LIBRARY_ENABLED) + SET(SERVER_LIBS ${SERVER_LIBS} ${SSL_LIBRARY_LIBS}) + INCLUDE_DIRECTORIES(SYSTEM "${SSL_LIBRARY_INCLUDE}") +ENDIF() + +IF(SODIUM_LIBRARY_ENABLED) + SET(SERVER_LIBS ${SERVER_LIBS} ${SODIUM_LIBRARY_LIBS}) + INCLUDE_DIRECTORIES(SYSTEM "${SODIUM_LIBRARY_INCLUDE}") +ENDIF() + +IF(EQEMU_BUILD_LUA) + SET(SERVER_LIBS ${SERVER_LIBS} ${LUA_LIBRARY_LIBS}) + INCLUDE_DIRECTORIES(SYSTEM "${LUA_LIBRARY_INCLUDE}") +ENDIF() + +IF(EQEMU_BUILD_PERL) + SET(SERVER_LIBS ${SERVER_LIBS} ${PERL_LIBRARY_LIBS}) + INCLUDE_DIRECTORIES(SYSTEM "${PERL_LIBRARY_INCLUDE}") +ENDIF() IF(WIN32) SET(SERVER_LIBS ${SERVER_LIBS} "ws2_32" "psapi" "iphlpapi" "userenv") @@ -146,101 +282,10 @@ IF(UNIX) SET(SERVER_LIBS ${SERVER_LIBS} "uuid") ENDIF() -IF(ZLIB_FOUND) - OPTION(EQEMU_BUILD_ZLIB "Build internal version of zlib." OFF) - - IF(EQEMU_BUILD_ZLIB) - INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") - SET(SERVER_LIBS ${SERVER_LIBS} "zlibstatic") - ELSE() - INCLUDE_DIRECTORIES(SYSTEM "${ZLIB_INCLUDE_DIRS}") - SET(SERVER_LIBS ${SERVER_LIBS} ${ZLIB_LIBRARY}) - ENDIF() -ELSE() - INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/zlibng") - SET(SERVER_LIBS ${SERVER_LIBS} "zlibstatic") +IF(EQEMU_BUILD_LOGIN AND NOT SSL_LIBRARY_ENABLED) + MESSAGE(FATAL_ERROR "Login server requires a SSL Library to build.") ENDIF() -IF(PerlLibs_FOUND) - OPTION(EQEMU_BUILD_PERL "Build Perl parser." ON) - IF(EQEMU_BUILD_PERL) - INCLUDE_DIRECTORIES(SYSTEM "${PERL_INCLUDE_PATH}") - SET(SERVER_LIBS ${SERVER_LIBS} "${PERL_LIBRARY}") - ADD_DEFINITIONS(-DEMBPERL) - ADD_DEFINITIONS(-DEMBPERL_PLUGIN) - ENDIF(EQEMU_BUILD_PERL) -ENDIF() - -IF(Lua51_FOUND) - OPTION(EQEMU_BUILD_LUA "Build Lua parser." ON) - - IF(EQEMU_BUILD_LUA) - INCLUDE_DIRECTORIES(SYSTEM "${LUA_INCLUDE_DIR}") - INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/libs/luabind") - SET(SERVER_LIBS ${SERVER_LIBS} "${LUA_LIBRARY}" luabind) - ADD_DEFINITIONS(-DLUA_EQEMU) - - OPTION(EQEMU_SANITIZE_LUA_LIBS "Sanitize Lua Libraries (Remove OS and IO standard libraries from being able to run)." ON) - IF(EQEMU_SANITIZE_LUA_LIBS) - ADD_DEFINITIONS(-DSANITIZE_LUA_LIBS) - ENDIF(EQEMU_SANITIZE_LUA_LIBS) - ENDIF(EQEMU_BUILD_LUA) -ENDIF() - -IF(OpenSSL_FOUND OR MBEDTLS_FOUND) - OPTION(EQEMU_BUILD_LOGIN "Build the login server." ON) - - IF(OpenSSL_FOUND AND MBEDTLS_FOUND) - SET(EQEMU_CRYPTO_LIB mbedTLS CACHE STRING "Crypto library to use: - OpenSSL - mbedTLS" - ) - - IF(EQEMU_CRYPTO_LIB STREQUAL "OpenSSL") - INCLUDE_DIRECTORIES(SYSTEM "${OPENSSL_INCLUDE_DIR}") - SET(SERVER_LIBS ${SERVER_LIBS} ${OPENSSL_LIBRARIES}) - ADD_DEFINITIONS(-DEQEMU_USE_OPENSSL) - ELSEIF(EQEMU_CRYPTO_LIB STREQUAL "mbedTLS") - INCLUDE_DIRECTORIES(SYSTEM "${MBEDTLS_INCLUDE_DIR}") - SET(SERVER_LIBS ${SERVER_LIBS} ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY}) - ADD_DEFINITIONS(-DEQEMU_USE_MBEDTLS) - ELSE() - MESSAGE(FATAL_ERROR "Unknown crypto library set, must be one of these: mbedTLS, OpenSSL") - ENDIF() - - ELSEIF(OpenSSL_FOUND) - INCLUDE_DIRECTORIES(SYSTEM "${OPENSSL_INCLUDE_DIR}") - SET(SERVER_LIBS ${SERVER_LIBS} ${OPENSSL_LIBRARIES}) - ADD_DEFINITIONS(-DEQEMU_USE_OPENSSL) - ELSEIF(MBEDTLS_FOUND) - INCLUDE_DIRECTORIES(SYSTEM "${MBEDTLS_INCLUDE_DIR}") - SET(SERVER_LIBS ${SERVER_LIBS} ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY}) - ADD_DEFINITIONS(-DEQEMU_USE_MBEDTLS) - ENDIF() -ENDIF() - -IF(SODIUM_FOUND AND EQEMU_BUILD_LOGIN) - OPTION(EQEMU_ENABLE_SECURITY "Use libsodium for stronger password hashing" ON) - IF(EQEMU_ENABLE_SECURITY) - INCLUDE_DIRECTORIES(SYSTEM "${SODIUM_INCLUDE_DIRS}") - SET(SERVER_LIBS ${SERVER_LIBS} ${SODIUM_LIBRARIES}) - ADD_DEFINITIONS(-DENABLE_SECURITY) - ENDIF() -ENDIF() - -INCLUDE_DIRECTORIES(SYSTEM "${MySQL_INCLUDE_DIR}") -INCLUDE_DIRECTORIES(SYSTEM "${Boost_INCLUDE_DIRS}") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/glm") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/cereal/include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/fmt/include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/libuv/include" ) -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DebugUtils/Include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/Detour/Include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DetourCrowd/Include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/DetourTileCache/Include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/recastnavigation/Recast/Include") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/websocketpp") - IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_HC) ADD_SUBDIRECTORY(common) ADD_SUBDIRECTORY(libs) @@ -258,6 +303,9 @@ IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_H SET(RECASTNAVIGATION_EXAMPLES OFF CACHE BOOL "Build examples") ADD_SUBDIRECTORY(submodules/recastnavigation) ENDIF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_HC) + +MESSAGE(STATUS "Libs: ${SERVER_LIBS}") + IF(EQEMU_BUILD_SERVER) ADD_SUBDIRECTORY(shared_memory) ADD_SUBDIRECTORY(world) @@ -266,6 +314,7 @@ IF(EQEMU_BUILD_SERVER) ADD_SUBDIRECTORY(queryserv) ADD_SUBDIRECTORY(eqlaunch) ENDIF(EQEMU_BUILD_SERVER) + IF(EQEMU_BUILD_LOGIN) ADD_SUBDIRECTORY(loginserver) ENDIF(EQEMU_BUILD_LOGIN) diff --git a/README.md b/README.md index e1126241c..5e4f919fe 100644 --- a/README.md +++ b/README.md @@ -70,3 +70,9 @@ forum, although pull requests will be much quicker and easier on all parties. * GPL Perl - GPL / ActiveState (under the assumption that this is a free project) * CPPUnit - GLP StringUtilities - Apache * LUA - MIT + +## Contributors + + + + diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000..0a653b06f --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,3 @@ +# Security Policy - Reporting Vulnerabilities + +When reporting active hacks, exploits and other vulnerabilities, please describe how to reproduce said report and if you can provide context into a possible solution diff --git a/changelog.txt b/changelog.txt index dc9d0f16c..84d38df4a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,26 @@ EQEMu Changelog (Started on Sept 24, 2003 15:50) ------------------------------------------------------- +== 8/16/2019 == +Akkadius: Simplified the use of roamboxes and improved the AI for roambox pathing https://i.imgur.com/z33u7y9.gif +Akkadius: Implemented command #roambox set [move_delay] +Akkadius: Implemented command #roambox remove +Akkadius: Implemented LUA NPC:SetSimpleRoamBox(box_size, [move_distance], [move_delay]); +Akkadius: Implemented Perl $npc->SetSimpleRoamBox(box_size, [move_distance], [move_delay]); +Akkadius: Spawngroup data now hot reloads on #repop +Akkadius: Command #npceditmass now lists column options when one isn't properly specified +Akkadius: Implemented command #spawneditmass