From 0f7abb8c2577aff8ba9deca87c35d3fbd6611363 Mon Sep 17 00:00:00 2001 From: KimLS Date: Thu, 13 Nov 2025 21:11:03 -0800 Subject: [PATCH] Update vcpkg to no longer be from 2022, update cmake lists (wip) --- CMakeLists.txt | 160 +++++++++++++++++++++++++++++++++++++++++++++++ submodules/vcpkg | 2 +- 2 files changed, 161 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13d5fae12..5e2b74c41 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,5 +18,165 @@ IF(NOT CMAKE_BUILD_TYPE) SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the type of build." FORCE) ENDIF(NOT CMAKE_BUILD_TYPE) +OPTION(EQEMU_BUILD_PCH "Build with precompiled headers (Windows)" ON) +# 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(USE_MAP_MMFS) + ADD_DEFINITIONS(-DUSE_MAP_MMFS) +ENDIF (USE_MAP_MMFS) + +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 + + 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) + +#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) + +#insert vcpkg libs here +FIND_PACKAGE(PerlLibs) + +MESSAGE(STATUS "**************************************************") +MESSAGE(STATUS "* Library Detection *") +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 "**************************************************") + +SET(EQEMU_LOG_LEVEL 0) +IF(EQEMU_ENABLE_LOG_TRACE) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 1") +ENDIF(EQEMU_ENABLE_LOG_TRACE) + +IF(EQEMU_ENABLE_LOG_DEBUG) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 2") +ENDIF(EQEMU_ENABLE_LOG_DEBUG) + +IF(EQEMU_ENABLE_LOG_INFO) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 4") +ENDIF(EQEMU_ENABLE_LOG_INFO) + +IF(EQEMU_ENABLE_LOG_WARN) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 8") +ENDIF(EQEMU_ENABLE_LOG_WARN) + +IF(EQEMU_ENABLE_LOG_ERROR) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 16") +ENDIF(EQEMU_ENABLE_LOG_ERROR) + +IF(EQEMU_ENABLE_LOG_FATAL) + MATH(EXPR EQEMU_LOG_LEVEL "${EQEMU_LOG_LEVEL} + 32") +ENDIF(EQEMU_ENABLE_LOG_FATAL) +ADD_DEFINITIONS(-DEQEMU_LOG_LEVEL=${EQEMU_LOG_LEVEL}) + +ADD_DEFINITIONS(-DGLM_FORCE_RADIANS) +ADD_DEFINITIONS(-DGLM_FORCE_CTOR_INIT) +ADD_DEFINITIONS(-DGLM_ENABLE_EXPERIMENTAL) + +#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_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) +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) + +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_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(EQEMU_BIASED_INT_DIST) + ADD_DEFINITIONS(-DBIASED_INT_DIST) +ENDIF() + +IF(EQEMU_COMMANDS_LOGGING) + ADD_DEFINITIONS(-DCOMMANDS_LOGGING) +ENDIF(EQEMU_COMMANDS_LOGGING) + +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 "* Perl: ${PERL_LIBRARY_TYPE} *") +MESSAGE(STATUS "**************************************************") + +# silence obnoxious deprecation message +ADD_DEFINITIONS(-DBOOST_BIND_GLOBAL_PLACEHOLDERS) + +IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_HC) + ADD_SUBDIRECTORY(common) +ENDIF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS OR EQEMU_BUILD_HC) diff --git a/submodules/vcpkg b/submodules/vcpkg index 163fe7bd3..d1ff36c65 160000 --- a/submodules/vcpkg +++ b/submodules/vcpkg @@ -1 +1 @@ -Subproject commit 163fe7bd3d67c41200617caaa245b5ba2ba854e6 +Subproject commit d1ff36c6520ee43f1a656c03cd6425c2974a449e