DarkflameServer/thirdparty/CMakeLists.txt

68 lines
2.0 KiB
CMake
Raw Permalink Normal View History

# Source Code for recast
add_subdirectory(recastnavigation)
# Turn off tinyxml2 testing
set(tinyxml2_BUILD_TESTING OFF)
# Source Code for tinyxml2
add_subdirectory(tinyxml2)
# Source Code for libbcrypt. Uses a file glob instead to get around Windows build issues.
file(
GLOB SOURCES_LIBBCRYPT
LIST_DIRECTORIES false
RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}"
${CMAKE_CURRENT_SOURCE_DIR}/libbcrypt/src/*.c
)
add_library(bcrypt ${SOURCES_LIBBCRYPT})
# Because we are not using the libbcrypt CMakeLists.txt, we need to include these headers for the library to use.
# fortunately they are only needed for building the libbcrypt directory and nothing else, so these are marked private.
if(NOT WIN32)
target_include_directories(bcrypt PRIVATE "libbcrypt/include/bcrypt")
endif()
# Need to define this on Clang and GNU for 'strdup' support
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU")
feat: Make use of CMake presets to enable easy switching between debug and release configurations on all platforms (#1439) * Add MSVC optimization flags * test moving flags to json * Update CMakePresets.json * testing * trying more variations on the flags * third test * testing if these even have any effect * ditto * final(?) try for now * ONE MORE TIME * trying 'init' flags instead * export the compile commands so I can see if they're having any effect * move out g++ O2 flag * add Linux debug preset * update CMake presets * edit macos presets * try adding build types back to mac * macos refuses to work :( * try using compiler flags for mac instead * fix typo in windows preset * build reorganization and experimental clang support * temporarily remove macos build for testing purposes * updated cmake workflows * unexclude toolchain dir * update .gitignore * fix build directory issue * edit build script * update cmake configs * attempted docker fix * try zero-initializinng this struct to solve docker issue * try fixing macos build * one last MacOS try for the night * try disabling an apple-specific build rule * more fiddling with mac test builds * try and narrow down the macos build failure cause * try stripping out all the custom macos test logic again * I'm really just throwing everything to the wall and seeing what sticks * more macos tinkering * implib * try manual link directory specification * save me * aaaaaaaaa * paths paths paths * Revert "paths paths paths" This reverts commit 9a7d86aa6c59e73de27fbcda2111f7a1472008f4. * Revert "aaaaaaaaa" This reverts commit 338279c396e7c4a78174929a0aaf5205f2c026e6. * Revert "save me" This reverts commit bd73aa21a9cd1625f7cf567ab5b56bde46c0af0e. * Revert "try manual link directory specification" This reverts commit 0c2d40632ee5df9c241532d8bf62de9969e47f51. * Revert "implib" This reverts commit d41349d6edada6a041c64971730eed1c51af14c5. * Revert "more macos tinkering" This reverts commit 829ec35b57983ad4444d90ab780fff95a8b47608. * Revert "I'm really just throwing everything to the wall and seeing what sticks" This reverts commit 1a05b027fe822a94e5a6b70e6c744623d6a98e61. * Revert "try stripping out all the custom macos test logic again" This reverts commit cc15a26ce80ff9cfec5f1a94b0c00c42e1832c55. * Revert "try and narrow down the macos build failure cause" This reverts commit 5fd86833fa6e421860496c3626415ab70c93a795. * Revert "more fiddling with mac test builds" This reverts commit 0f843c02c90b2aa5f0c211e19c47b00798c295c8. * Revert "try disabling an apple-specific build rule" This reverts commit 45ec66e97605e3ea5b0a76f6eed0ec6f955c1675. * back to debug messages * see if this re-breaks mac * are these messages actually somehow fixing the issue? * was not actually fixed * add debug messages (again) * debug try 2 * change runtime output dir * rename gcc to gnu * expand cmake presets * fix preset * change defaults * altered cmake configuration scripts * disable /WX on MSVC * update github actions * update build presets * change gnu and clang build directories to enable consistent artifact generation * add RelWithDebInfo presets and move -Werror flag into presets.json * use DLU_CONFIG_DIR envvar * CMakePresets indentation * temp fix for MSVC debug builds
2024-11-18 01:03:54 +00:00
target_compile_definitions(bcrypt PRIVATE "_POSIX_C_SOURCE=200809L")
endif()
target_include_directories(bcrypt INTERFACE "libbcrypt/include")
target_include_directories(bcrypt PRIVATE "libbcrypt/src")
# Source code for sqlite
add_subdirectory(SQLite)
feat: Improve console output to show packet enum names (magic_enum) (#1344) * add enum stringification functionality from third party source * squashed commit * Macros: Add test and improve speed Space macros out utilize cache locality ensure no lost functionality * moved stringify code to dCommon * Rename #defines in stringify enum tests * Revert "moved stringify code to dCommon" This reverts commit 33fa5f8d2fc273ede9fffbc15a62d9a5335ffe6a. * improve macro functionality change function handle formatting and function definition tweaks * typo fixes * moved code to dCommon/dEnums and tests to dCommonTests/dEnumsTests * initial magic_enums alternate implementation of enum stringification * deleted unused tests * reverted compile flag oopsy and fixed output types * fixed testing suite * test formatting improvement * formatting again :( * added gm string to "aborting gm!" message * Push my suggestion for CI tests. * updated magic enum test * fix test variable type * added gm test * making sure magic_enum is on a release branch * tidying up console outputs * re-implemented enum array access for performance * now it is bugged :( * nvm, working * helping out the snowflake compilers * changed return type too * optimization too * formatting too I guess because why not * being even more painfully specific * Update WorldServer.cpp to match emo's feedback * Update MagicEnumTests.cpp to use srand(time(NULL)) * Update eGameMessageType.h - formatting * Trying to fix the crash but can't actually compile the code to check on my own rn * Update WorldServer.cpp - third try at this * Update MagicEnumTests.cpp - use better macro definitions * Update MagicEnumTests.cpp - c string comparison fix * addressing all but the cmake feedback * fixed cmake to the best of my very limited ability * added tests to verify magic enum arrays are pre-sorted * updated --------- Co-authored-by: David Markowitz <EmosewaMC@gmail.com> Co-authored-by: Jettford <mrjettbradford@gmail.com>
2023-12-23 16:51:59 +00:00
# Source code for magic_enum
add_subdirectory(magic_enum)
# Create our third party library objects
add_subdirectory(raknet)
# Download Backtrace if configured
if(UNIX AND NOT APPLE)
include(FetchContent)
if (${INCLUDE_BACKTRACE} AND ${COMPILE_BACKTRACE})
FetchContent_Declare(
backtrace
GIT_REPOSITORY https://github.com/ianlancetaylor/libbacktrace.git
)
FetchContent_MakeAvailable(backtrace)
if (NOT EXISTS ${backtrace_SOURCE_DIR}/.libs)
set(backtrace_make_cmd "${backtrace_SOURCE_DIR}/configure --prefix=\"/usr\" --enable-shared --with-system-libunwind")
execute_process(
COMMAND bash -c "cd ${backtrace_SOURCE_DIR} && ${backtrace_make_cmd} && make && cd ${CMAKE_SOURCE_DIR}"
)
endif()
link_directories(${backtrace_SOURCE_DIR}/.libs/)
include_directories(${backtrace_SOURCE_DIR})
endif()
endif()
add_subdirectory(MD5)