diff --git a/CMakeLists.txt b/CMakeLists.txt index 38ff72e0c..2fd5ee965 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,81 +1,81 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.17.0) +cmake_minimum_required(VERSION 3.20.0) -IF(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) - MESSAGE(STATUS "Using vcpkg env variable") - SET(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") -ELSEIF(NOT DEFINED CMAKE_TOOLCHAIN_FILE) - MESSAGE(STATUS "Using vcpkg submodule") - SET(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/submodules/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") -ENDIF() +if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE) + message(STATUS "Using vcpkg env variable") + set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") +elseif(NOT DEFINED CMAKE_TOOLCHAIN_FILE) + message(STATUS "Using vcpkg submodule") + set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/submodules/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "") +endif() -PROJECT(EQEmu) +project(EQEmu) -IF(NOT CMAKE_BUILD_TYPE) - SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) -ENDIF(NOT CMAKE_BUILD_TYPE) +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) +endif() -SET(CMAKE_CXX_STANDARD 20) -SET(CMAKE_CXX_STANDARD_REQUIRED ON) -SET(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) -OPTION(EQEMU_BUILD_STATIC "Build with static linking" OFF) -OPTION(EQEMU_BUILD_PCH "Build with precompiled headers (Windows)" ON) +option(EQEMU_BUILD_STATIC "Build with static linking" OFF) +option(EQEMU_BUILD_PCH "Build with precompiled headers (Windows)" ON) -IF (EQEMU_BUILD_STATIC) - SET(BUILD_SHARED_LIBS OFF) - SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a") - MESSAGE(STATUS "Building with static linking") - SET(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") - IF (UNIX) - SET(PERL_LIBRARY "/opt/eqemu-perl/lib/5.32.1/x86_64-linux-thread-multi/CORE/libperl.so") - SET(PERL_INCLUDE_PATH "/opt/eqemu-perl/lib/5.32.1/x86_64-linux-thread-multi/CORE/") - SET(PERL_EXECUTABLE "/opt/eqemu-perl/bin/perl") - ENDIF () -ENDIF (EQEMU_BUILD_STATIC) +if(EQEMU_BUILD_STATIC) + set(BUILD_SHARED_LIBS OFF) + set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".a") + message(STATUS "Building with static linking") + set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") + if(UNIX) + set(PERL_LIBRARY "/opt/eqemu-perl/lib/5.32.1/x86_64-linux-thread-multi/CORE/libperl.so") + set(PERL_INCLUDE_PATH "/opt/eqemu-perl/lib/5.32.1/x86_64-linux-thread-multi/CORE/") + set(PERL_EXECUTABLE "/opt/eqemu-perl/bin/perl") + endif() +endif() # Requires libgoogle-perftools-dev google-perftools packages for linux (debian) -IF(EQEMU_ADD_PROFILER) - SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed,-lprofiler,--as-needed") -ENDIF(EQEMU_ADD_PROFILER) +if(EQEMU_ADD_PROFILER) + set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed,-lprofiler,--as-needed") +endif() -IF(USE_MAP_MMFS) - ADD_DEFINITIONS(-DUSE_MAP_MMFS) -ENDIF (USE_MAP_MMFS) +if(USE_MAP_MMFS) + add_definitions(-DUSE_MAP_MMFS) +endif() -IF(MSVC) +if(MSVC) add_compile_options(/bigobj) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) - ADD_DEFINITIONS(-DNOMINMAX) - ADD_DEFINITIONS(-DCRASH_LOGGING) - ADD_DEFINITIONS(-D_HAS_AUTO_PTR_ETC) # for Luabind on C++17 + add_definitions(-D_CRT_SECURE_NO_WARNINGS) + add_definitions(-DNOMINMAX) + add_definitions(-DCRASH_LOGGING) + add_definitions(-D_HAS_AUTO_PTR_ETC) # for Luabind on C++17 - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") - OPTION(EQEMU_DISABLE_MSVC_WARNINGS "Disable MSVC compile warnings." ON) - IF(EQEMU_DISABLE_MSVC_WARNINGS) - ADD_DEFINITIONS( "/W0 /D_CRT_SECURE_NO_WARNINGS /wd4005 /wd4996 /nologo /Os") - ENDIF(EQEMU_DISABLE_MSVC_WARNINGS) -ELSE(MSVC) - ADD_DEFINITIONS(-DHAS_UNION_SEMUN) -ENDIF(MSVC) + option(EQEMU_DISABLE_MSVC_WARNINGS "Disable MSVC compile warnings." ON) + if(EQEMU_DISABLE_MSVC_WARNINGS) + add_definitions( "/W0 /D_CRT_SECURE_NO_WARNINGS /wd4005 /wd4996 /nologo /Os") + endif() +else(MSVC) + add_definitions(-DHAS_UNION_SEMUN) +endif() #FreeBSD support -IF(UNIX) - IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - ADD_DEFINITIONS(-DFREEBSD) - ADD_DEFINITIONS(-D_GLIBCXX_USE_C99) - SET(FREEBSD TRUE) - ENDIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") - IF(CMAKE_SYSTEM_NAME MATCHES "Darwin") - ADD_DEFINITIONS(-DDARWIN) - SET(DARWIN TRUE) - ENDIF(CMAKE_SYSTEM_NAME MATCHES "Darwin") -ENDIF(UNIX) +if(UNIX) + if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") + add_definitions(-DFREEBSD) + add_definitions(-D_GLIBCXX_USE_C99) + set(FREEBSD TRUE) + endif() + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") + add_definitions(-DDARWIN) + set(DARWIN TRUE) + endif() +endif() -ADD_DEFINITIONS(-DGLM_FORCE_RADIANS) -ADD_DEFINITIONS(-DGLM_FORCE_CTOR_INIT) -ADD_DEFINITIONS(-DGLM_ENABLE_EXPERIMENTAL) +add_definitions(-DGLM_FORCE_RADIANS) +add_definitions(-DGLM_FORCE_CTOR_INIT) +add_definitions(-DGLM_ENABLE_EXPERIMENTAL) find_package(PkgConfig) find_package(Boost REQUIRED COMPONENTS dynamic_bitset foreach tuple) @@ -90,224 +90,200 @@ find_package(ZLIB REQUIRED) pkg_check_modules(luajit REQUIRED IMPORTED_TARGET luajit) find_package(PerlLibs) -MESSAGE(STATUS "**************************************************") -MESSAGE(STATUS "* Library Detection *") -MESSAGE(STATUS "**************************************************") +message(STATUS "**************************************************") +message(STATUS "* Library Detection *") +message(STATUS "**************************************************") -IF(MARIADB_FOUND) - MESSAGE(STATUS "* MariaDB: FOUND *") -ELSE() - MESSAGE(STATUS "* MariaDB: 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(ZLIB_FOUND) + message(STATUS "* ZLIB: FOUND *") +else() + message(STATUS "* ZLIB: MISSING *") +endif() -IF(LuaJit_FOUND) - MESSAGE(STATUS "* LuaJIT: FOUND *") -ELSE() - MESSAGE(STATUS "* LuaJIT: MISSING *") -ENDIF() +if(LuaJit_FOUND) + message(STATUS "* LuaJIT: FOUND *") +else() + message(STATUS "* LuaJIT: MISSING *") +endif() -IF(PerlLibs_FOUND) - MESSAGE(STATUS "* Perl: FOUND *") -ELSE() - MESSAGE(STATUS "* Perl: MISSING *") -ENDIF() +if(PerlLibs_FOUND) + message(STATUS "* Perl: FOUND *") +else() + message(STATUS "* Perl: MISSING *") +endif() -IF(OpenSSL_FOUND) - MESSAGE(STATUS "* OpenSSL: FOUND *") -ELSE() - MESSAGE(STATUS "* OpenSSL: MISSING *") -ENDIF() +if(OpenSSL_FOUND) + message(STATUS "* OpenSSL: FOUND *") +else() + message(STATUS "* OpenSSL: MISSING *") +endif() -MESSAGE(STATUS "PERL_INCLUDE_PATH: ${PERL_INCLUDE_PATH}") -MESSAGE(STATUS "PERL_LIBRARY: ${PERL_LIBRARY}") -MESSAGE(STATUS "PERL_INCLUDE_DIR: ${PERL_INCLUDE_DIR}") -MESSAGE(STATUS "PERL_INCLUDE_DIRS: ${PERL_INCLUDE_DIRS}") -MESSAGE(STATUS "PERL_LIBRARIES: ${PERL_LIBRARIES}") -MESSAGE(STATUS "PERL_VERSION: ${PERL_VERSION}") -MESSAGE(STATUS "**************************************************") +message(STATUS "PERL_INCLUDE_PATH: ${PERL_INCLUDE_PATH}") +message(STATUS "PERL_LIBRARY: ${PERL_LIBRARY}") +message(STATUS "PERL_INCLUDE_DIR: ${PERL_INCLUDE_DIR}") +message(STATUS "PERL_INCLUDE_DIRS: ${PERL_INCLUDE_DIRS}") +message(STATUS "PERL_LIBRARIES: ${PERL_LIBRARIES}") +message(STATUS "PERL_VERSION: ${PERL_VERSION}") +message(STATUS "**************************************************") -INCLUDE_DIRECTORIES(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/websocketpp") +include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/submodules/websocketpp") -ADD_DEFINITIONS(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) +add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) #options -OPTION(EQEMU_COMMANDS_LOGGING "Enable GM Command logs" ON) -OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) -OPTION(EQEMU_BUILD_LOGIN "Build the login server." ON) -OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) -OPTION(EQEMU_BUILD_CLIENT_FILES "Build Client Import/Export Data Programs." ON) -OPTION(EQEMU_PREFER_LUA "Build with normal Lua even if LuaJIT is found." OFF) +option(EQEMU_COMMANDS_LOGGING "Enable GM Command logs" ON) +option(EQEMU_BUILD_SERVER "Build the game server." ON) +option(EQEMU_BUILD_LOGIN "Build the login server." ON) +option(EQEMU_BUILD_TESTS "Build utility tests." OFF) +option(EQEMU_BUILD_CLIENT_FILES "Build Client Import/Export Data Programs." ON) +option(EQEMU_PREFER_LUA "Build with normal Lua even if LuaJIT is found." OFF) #PRNG options -OPTION(EQEMU_ADDITIVE_LFIB_PRNG "Use Additive LFib for PRNG." OFF) -MARK_AS_ADVANCED(EQEMU_ADDITIVE_LFIB_PRNG) -OPTION(EQEMU_BIASED_INT_DIST "Use biased int dist instead of uniform." OFF) -MARK_AS_ADVANCED(EQEMU_BIASED_INT_DIST) -SET(EQEMU_CUSTOM_PRNG_ENGINE "" CACHE STRING "Custom random engine. (ex. std::default_random_engine)") -MARK_AS_ADVANCED(EQEMU_CUSTOM_PRNG_ENGINE) +option(EQEMU_ADDITIVE_LFIB_PRNG "Use Additive LFib for PRNG." OFF) +mark_as_advanced(EQEMU_ADDITIVE_LFIB_PRNG) +option(EQEMU_BIASED_INT_DIST "Use biased int dist instead of uniform." OFF) +mark_as_advanced(EQEMU_BIASED_INT_DIST) +set(EQEMU_CUSTOM_PRNG_ENGINE "" CACHE STRING "Custom random engine. (ex. std::default_random_engine)") +mark_as_advanced(EQEMU_CUSTOM_PRNG_ENGINE) -IF(CMAKE_COMPILER_IS_GNUCXX) - OPTION(EQEMU_SFMT19937 "Use GCC's extention for SIMD Fast MT19937." OFF) - MARK_AS_ADVANCED(EQEMU_SFMT19937) -ENDIF() +if(CMAKE_COMPILER_IS_GNUCXX) + option(EQEMU_SFMT19937 "Use GCC's extention for SIMD Fast MT19937." OFF) + mark_as_advanced(EQEMU_SFMT19937) +endif() -IF(EQEMU_ADDITIVE_LFIB_PRNG) - ADD_DEFINITIONS(-DUSE_ADDITIVE_LFIB_PRNG) - IF(EQEMU_SFMT19937) - MESSAGE(STATUS "SFMT19937 and ADDITITVE_LFIB_PRNG both set, SFMT19937 ignored.") - SET(EQEMU_SFMT19937 OFF) - ENDIF() - IF(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") - MESSAGE(STATUS "CUSTOM_PRNG_ENGINE and ADDITITVE_LFIB_PRNG both set, CUSTOM_PRNG_ENGINE ignored.") - SET(EQEMU_CUSTOM_PRNG_ENGINE "") - ENDIF() -ENDIF() +if(EQEMU_ADDITIVE_LFIB_PRNG) + add_definitions(-DUSE_ADDITIVE_LFIB_PRNG) + if(EQEMU_SFMT19937) + message(STATUS "SFMT19937 and ADDITITVE_LFIB_PRNG both set, SFMT19937 ignored.") + set(EQEMU_SFMT19937 OFF) + endif() + if(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") + message(STATUS "CUSTOM_PRNG_ENGINE and ADDITITVE_LFIB_PRNG both set, CUSTOM_PRNG_ENGINE ignored.") + set(EQEMU_CUSTOM_PRNG_ENGINE "") + endif() +endif() -IF(EQEMU_SFMT19937) - ADD_DEFINITIONS(-DUSE_SFMT19937) - IF(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") - MESSAGE(STATUS "CUSTOM_PRNG_ENGINE and SFMT19937 both set, CUSTOM_PRNG_ENGINE ignored.") - SET(EQEMU_CUSTOM_PRNG_ENGINE "") - ENDIF() -ENDIF() +if(EQEMU_SFMT19937) + add_definitions(-DUSE_SFMT19937) + if(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") + message(STATUS "CUSTOM_PRNG_ENGINE and SFMT19937 both set, CUSTOM_PRNG_ENGINE ignored.") + set(EQEMU_CUSTOM_PRNG_ENGINE "") + endif() +endif() -IF(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") - ADD_DEFINITIONS(-DUSE_CUSTOM_PRNG_ENGINE=${EQEMU_CUSTOM_PRNG_ENGINE}) -ENDIF() +if(NOT EQEMU_CUSTOM_PRNG_ENGINE STREQUAL "") + add_definitions(-DUSE_CUSTOM_PRNG_ENGINE=${EQEMU_CUSTOM_PRNG_ENGINE}) +endif() -IF(EQEMU_BIASED_INT_DIST) - ADD_DEFINITIONS(-DBIASED_INT_DIST) -ENDIF() +if(EQEMU_BIASED_INT_DIST) + add_definitions(-DBIASED_INT_DIST) +endif() -IF(EQEMU_COMMANDS_LOGGING) - ADD_DEFINITIONS(-DCOMMANDS_LOGGING) -ENDIF(EQEMU_COMMANDS_LOGGING) +if(EQEMU_COMMANDS_LOGGING) + add_definitions(-DCOMMANDS_LOGGING) +endif() -SET(DATABASE_LIBRARY_TYPE "MariaDB") -SET(DATABASE_LIBRARY_LIBS ${MariaDB_LIBRARIES}) -SET(DATABASE_LIBRARY_INCLUDE ${MariaDB_INCLUDE_DIR}) -SET(TLS_LIBRARY_TYPE " OpenSSL") -SET(TLS_LIBRARY_ENABLED ON) -SET(TLS_LIBRARY_LIBS ${OPENSSL_LIBRARIES}) -SET(TLS_LIBRARY_INCLUDE ${OPENSSL_INCLUDE_DIR}) -ADD_DEFINITIONS(-DEQEMU_USE_OPENSSL) -IF(${OPENSSL_VERSION} VERSION_GREATER_EQUAL "1.1.1") - ADD_DEFINITIONS(-DCPPHTTPLIB_OPENSSL_SUPPORT) -ENDIF() +if(${OPENSSL_VERSION} VERSION_GREATER_EQUAL "1.1.1") + add_definitions(-DCPPHTTPLIB_OPENSSL_SUPPORT) +endif() -SET(LUA_LIBRARY_TYPE " LuaJIT") -SET(LUA_LIBRARY_ENABLED ON) +if(PerlLibs_FOUND) + set(PERL_LIBRARY_TYPE " Perl") + set(PERL_LIBRARY_ENABLED ON) + set(PERL_LIBRARY_LIBS ${PERL_LIBRARY}) + set(PERL_LIBRARY_INCLUDE ${PERL_INCLUDE_PATH}) +else() + set(PERL_LIBRARY_TYPE "Disabled") + set(PERL_LIBRARY_ENABLED OFF) +endif() -IF(PerlLibs_FOUND) - SET(PERL_LIBRARY_TYPE " Perl") - SET(PERL_LIBRARY_ENABLED ON) - SET(PERL_LIBRARY_LIBS ${PERL_LIBRARY}) - SET(PERL_LIBRARY_INCLUDE ${PERL_INCLUDE_PATH}) -ELSE() - SET(PERL_LIBRARY_TYPE "Disabled") - SET(PERL_LIBRARY_ENABLED OFF) -ENDIF() +message(STATUS "") +message(STATUS "**************************************************") +message(STATUS "* Library Usage *") +message(STATUS "**************************************************") +message(STATUS "* Database: MariaDB *") +message(STATUS "* TLS: OpenSSL *") +message(STATUS "* Lua: LuaJIT *") +message(STATUS "* Perl: ${PERL_LIBRARY_TYPE} *") +message(STATUS "* zlib: ZLIB *") +message(STATUS "**************************************************") -SET(ZLIB_LIBRARY_TYPE "zlib-ng") -SET(ZLIB_LIBRARY_LIBS "zlibstatic") -SET(ZLIB_LIBRARY_INCLUDE "${CMAKE_CURRENT_SOURCE_DIR}/libs/zlibng") -IF (EQEMU_BUILD_STATIC) - SET(ZLIB_LIBRARY_LIBS libz.a) -ENDIF(EQEMU_BUILD_STATIC) -MESSAGE(STATUS "") -MESSAGE(STATUS "**************************************************") -MESSAGE(STATUS "* Library Usage *") -MESSAGE(STATUS "**************************************************") -MESSAGE(STATUS "* Database: ${DATABASE_LIBRARY_TYPE} *") -MESSAGE(STATUS "* TLS: ${TLS_LIBRARY_TYPE} *") -MESSAGE(STATUS "* Lua: ${LUA_LIBRARY_TYPE} *") -MESSAGE(STATUS "* Perl: ${PERL_LIBRARY_TYPE} *") -MESSAGE(STATUS "* zlib: ${ZLIB_LIBRARY_TYPE} *") -MESSAGE(STATUS "**************************************************") +option(EQEMU_BUILD_LUA "Build Lua parser." ON) +if(EQEMU_BUILD_LUA) + add_definitions(-DLUA_EQEMU) + #set(ZONE_LIBS ${pkgcfg_lib_luajit_lua51}) + include_directories(SYSTEM "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/luajit" "${CMAKE_CURRENT_SOURCE_DIR}/libs/luabind") -SET(SERVER_LIBS common) -# silence obnoxious deprecation message -ADD_DEFINITIONS(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) + 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() -IF(LUA_LIBRARY_ENABLED) - OPTION(EQEMU_BUILD_LUA "Build Lua parser." ON) - - IF(EQEMU_BUILD_LUA) - ADD_DEFINITIONS(-DLUA_EQEMU) - #SET(ZONE_LIBS ${pkgcfg_lib_luajit_lua51}) - include_directories(SYSTEM "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/luajit" "${CMAKE_CURRENT_SOURCE_DIR}/libs/luabind") - - 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() -ENDIF() - -IF(PERL_LIBRARY_ENABLED) - OPTION(EQEMU_BUILD_PERL "Build Perl parser." ON) - IF(EQEMU_BUILD_PERL) - SET(SERVER_LIBS ${SERVER_LIBS} ${PERL_LIBRARY_LIBS} perlbind) +if(PERL_LIBRARY_ENABLED) + option(EQEMU_BUILD_PERL "Build Perl parser." ON) + if(EQEMU_BUILD_PERL) + set(SERVER_LIBS ${SERVER_LIBS} ${PERL_LIBRARY_LIBS} perlbind) INCLUDE_DIRECTORIES(SYSTEM "${PERL_LIBRARY_INCLUDE}") - ADD_DEFINITIONS(-DEMBPERL) - ADD_DEFINITIONS(-DEMBPERL_PLUGIN) - ADD_DEFINITIONS(-DPERLBIND_NO_STRICT_SCALAR_TYPES) - IF (UNIX AND EQEMU_BUILD_STATIC) - SET(SERVER_LIBS ${SERVER_LIBS} libcrypt.a) - ENDIF () - ENDIF() -ENDIF() + add_definitions(-DEMBPERL) + add_definitions(-DEMBPERL_PLUGIN) + add_definitions(-DPERLBIND_NO_STRICT_SCALAR_TYPES) + if(UNIX AND EQEMU_BUILD_STATIC) + set(SERVER_LIBS ${SERVER_LIBS} libcrypt.a) + endif() + endif() +endif() -IF(WIN32) - SET(SERVER_LIBS ${SERVER_LIBS} "ws2_32" "psapi" "iphlpapi" "userenv") -ENDIF() +set(SERVER_LIBS common) +# silence obnoxious deprecation message +add_definitions(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) -IF(UNIX) - SET(SERVER_LIBS ${SERVER_LIBS} ${CMAKE_DL_LIBS} "z" "m" "pthread") - IF(NOT DARWIN) - SET(SERVER_LIBS ${SERVER_LIBS} "rt") - ENDIF() +if(WIN32) + set(SERVER_LIBS ${SERVER_LIBS} "ws2_32" "psapi" "iphlpapi" "userenv") +endif() + +if(UNIX) + set(SERVER_LIBS ${SERVER_LIBS} ${CMAKE_DL_LIBS} "z" "m" "pthread") + if(NOT DARWIN) + set(SERVER_LIBS ${SERVER_LIBS} "rt") + endif() # Freebsd provides uuids in the C library - IF(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") - SET(SERVER_LIBS ${SERVER_LIBS} "uuid") - ENDIF() -ENDIF() + if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + set(SERVER_LIBS ${SERVER_LIBS} "uuid") + endif() +endif() -SET(ZONE_LIBS ${ZONE_LIBS} ${SERVER_LIBS}) +set(ZONE_LIBS ${ZONE_LIBS} ${SERVER_LIBS}) -IF(EQEMU_BUILD_LOGIN AND NOT TLS_LIBRARY_ENABLED) - MESSAGE(FATAL_ERROR "Login server requires a TLS Library to build.") -ENDIF() +if(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS) + add_subdirectory(common) + add_subdirectory(libs) +endif() -IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS) - ADD_SUBDIRECTORY(common) - ADD_SUBDIRECTORY(libs) -ENDIF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS) +if(EQEMU_BUILD_SERVER) + add_subdirectory(shared_memory) + add_subdirectory(world) + add_subdirectory(zone) + add_subdirectory(ucs) + add_subdirectory(queryserv) + add_subdirectory(eqlaunch) +endif() -IF(EQEMU_BUILD_SERVER) - ADD_SUBDIRECTORY(shared_memory) - ADD_SUBDIRECTORY(world) - ADD_SUBDIRECTORY(zone) - ADD_SUBDIRECTORY(ucs) - ADD_SUBDIRECTORY(queryserv) - ADD_SUBDIRECTORY(eqlaunch) -ENDIF(EQEMU_BUILD_SERVER) +if(EQEMU_BUILD_LOGIN) + add_subdirectory(loginserver) +endif() -IF(EQEMU_BUILD_LOGIN) - ADD_SUBDIRECTORY(loginserver) -ENDIF(EQEMU_BUILD_LOGIN) +if(EQEMU_BUILD_TESTS) + add_subdirectory(tests) +endif() -IF(EQEMU_BUILD_TESTS) - ADD_SUBDIRECTORY(tests) -ENDIF(EQEMU_BUILD_TESTS) - -IF(EQEMU_BUILD_CLIENT_FILES) - ADD_SUBDIRECTORY(client_files) -ENDIF(EQEMU_BUILD_CLIENT_FILES) \ No newline at end of file +if(EQEMU_BUILD_CLIENT_FILES) + add_subdirectory(client_files) +endif()