mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
The NexusDashboard-parity dashboard (dDashboardServer) and everything built on it on the experimental branch: accounts, characters, properties and moderation tools, permissions shared with in-game slash commands, economy reports, World 3D and property 3D views with client scenery, scheduled events (features, vanity changes, live events, announcements, restarts), vanity files and events, the CDClient browser, the message inspector with saved captures, chat filter tools, community challenges, live ops, the AI moderator helper, and the server-side changes they need. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
131 lines
3.5 KiB
CMake
131 lines
3.5 KiB
CMake
# 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")
|
|
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)
|
|
|
|
# Source code for magic_enum
|
|
add_subdirectory(magic_enum)
|
|
|
|
# Create our third party library objects
|
|
add_subdirectory(raknet)
|
|
|
|
include(FetchContent)
|
|
|
|
# Download Backtrace if configured
|
|
if(UNIX AND NOT APPLE)
|
|
if (${INCLUDE_BACKTRACE} AND ${COMPILE_BACKTRACE})
|
|
FetchContent_Declare(
|
|
backtrace
|
|
GIT_REPOSITORY https://github.com/ianlancetaylor/libbacktrace.git
|
|
GIT_PROGRESS TRUE
|
|
GIT_SHALLOW 1
|
|
)
|
|
|
|
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()
|
|
|
|
FetchContent_Declare(
|
|
glm
|
|
GIT_REPOSITORY https://github.com/g-truc/glm.git
|
|
GIT_TAG 8d1fd52e5ab5590e2c81768ace50c72bae28f2ed #refs/tags/1.0.3
|
|
GIT_PROGRESS TRUE
|
|
GIT_SHALLOW 1
|
|
)
|
|
|
|
FetchContent_MakeAvailable(glm)
|
|
|
|
add_subdirectory(MD5)
|
|
|
|
add_subdirectory(mongoose)
|
|
|
|
# libcurl, used by the dashboard to send email over SMTP. Built statically with only SMTP (and HTTP, for
|
|
# future outgoing HTTPS requests) enabled. TLS uses the OS certificate store: Schannel on Windows, OpenSSL elsewhere.
|
|
# Options are set inside a function so they don't leak into our own build (e.g. BUILD_TESTING from CTest).
|
|
function(dlu_fetch_curl)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(BUILD_TESTING OFF)
|
|
set(BUILD_CURL_EXE OFF)
|
|
set(BUILD_LIBCURL_DOCS OFF)
|
|
set(BUILD_MISC_DOCS OFF)
|
|
set(ENABLE_CURL_MANUAL OFF)
|
|
set(BUILD_EXAMPLES OFF)
|
|
set(CURL_DISABLE_INSTALL ON)
|
|
set(CURL_ENABLE_EXPORT_TARGET OFF)
|
|
|
|
foreach(protocol DICT FILE FTP GOPHER IMAP LDAP LDAPS MQTT POP3 RTSP SMB TELNET TFTP WEBSOCKETS IPFS)
|
|
set(CURL_DISABLE_${protocol} ON)
|
|
endforeach()
|
|
|
|
set(CURL_USE_LIBPSL OFF)
|
|
set(CURL_USE_LIBSSH2 OFF)
|
|
set(CURL_USE_LIBSSH OFF)
|
|
set(CURL_USE_GSSAPI OFF)
|
|
set(CURL_ZLIB OFF)
|
|
set(CURL_BROTLI OFF)
|
|
set(CURL_ZSTD OFF)
|
|
set(USE_NGHTTP2 OFF)
|
|
set(USE_LIBIDN2 OFF)
|
|
set(USE_WIN32_IDN OFF)
|
|
set(ENABLE_ARES OFF)
|
|
|
|
if(WIN32)
|
|
set(CURL_USE_SCHANNEL ON)
|
|
set(CURL_USE_OPENSSL OFF)
|
|
else()
|
|
set(CURL_USE_OPENSSL ON)
|
|
endif()
|
|
|
|
FetchContent_Declare(
|
|
curl
|
|
GIT_REPOSITORY https://github.com/curl/curl.git
|
|
GIT_TAG curl-8_22_0
|
|
GIT_PROGRESS TRUE
|
|
GIT_SHALLOW 1
|
|
)
|
|
FetchContent_MakeAvailable(curl)
|
|
endfunction()
|
|
dlu_fetch_curl()
|