Some fixes and work
This commit is contained in:
+47
-8
@@ -11,11 +11,22 @@ include(cmake/externalcontent/ExternalContent.cmake)
|
||||
#--------------------------------------------------------------------------------#
|
||||
|
||||
set(CACHE{ENABLE_SSL} TYPE BOOL HELP "Enable SSL support via wolfSSL?" VALUE ON)
|
||||
set(CACHE{ENABLE_COMPRESSION} TYPE BOOL HELP "Enable support for compression?" VALUE ON)
|
||||
|
||||
#--------------------------------------------------------------------------------#
|
||||
# Libraries
|
||||
#--------------------------------------------------------------------------------#
|
||||
|
||||
if(TRUE) # Database support
|
||||
## PostGreSQL
|
||||
# Depends on massive mono-repo project that we don't have the time to investigate now.
|
||||
find_package("libpqxx" OPTIONAL)
|
||||
|
||||
## MariaDB
|
||||
# Depends on massive mono-repo project that we don't have the time to investigate now.
|
||||
find_package("libmariadb" OPTIONAL)
|
||||
endif()
|
||||
|
||||
if(TRUE) # ASIO (Standalone)
|
||||
ExternalContent(
|
||||
NAME "asio"
|
||||
@@ -58,12 +69,27 @@ if(TRUE) # nlohmann's JSON
|
||||
endif()
|
||||
|
||||
if(TRUE) # badaix's JSONRPC++
|
||||
#!TODO: Replace with our own, this implementation isn't compliant with C++ standards at all.
|
||||
|
||||
function(jsonrpcpp_patch)
|
||||
if(EXTERNALCONTENT_DOWNLOAD_DIRTY)
|
||||
file(GLOB_RECURSE _PATCHES FOLLOW_SYMLINKS CONFIGURE_DEPENDS "${CMAKE_SOURCE_DIR}/patches/badaix-jsonrpcpp/*")
|
||||
execute_process(
|
||||
COMMAND "git" "apply" "${_PATCHES}"
|
||||
WORKING_DIRECTORY "${EXTERNALCONTENT_SOURCE_PATH}"
|
||||
COMMAND_ECHO STDOUT
|
||||
)
|
||||
set(_EC_PATCH_DIRTY ON)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
ExternalContent(
|
||||
NAME "jsonrpcpp"
|
||||
GIT_URL "https://github.com/badaix/jsonrpcpp.git"
|
||||
GIT_REF "v1.4.0"
|
||||
GIT_CLONE_OPTIONS --depth 1 --no-single-branch --recurse-submodules
|
||||
GIT_CHECKOUT_OPTIONS --recurse-submodules
|
||||
PATCH_FUNCTION jsonrpcpp_patch
|
||||
CONFIGURE_ARGS -D BUILD_EXAMPLE:BOOL=OFF -D BUILD_TESTS:BOOL=OFF -D CATCH_INSTALL_DOCS:BOOL=OFF -D CATCH_INSTALL_EXTRAS:BOOL=ON
|
||||
BUILD_ARGS --parallel --config Release --clean-first
|
||||
)
|
||||
@@ -71,13 +97,16 @@ if(TRUE) # badaix's JSONRPC++
|
||||
# This doesn't have a proper CMake module yet.
|
||||
if(NOT TARGET jsonrpcpp)
|
||||
add_library("jsonrpcpp" INTERFACE)
|
||||
file(GLOB_RECURSE _FILES FOLLOW_SYMLINKS CONFIGURE_DEPENDS "${badaix-jsonrpc_SOURCE_PATH}/include/*")
|
||||
source_group(TREE "${badaix-jsonrpc_SOURCE_PATH}/include" PREFIX "" FILES ${_FILES})
|
||||
file(GLOB_RECURSE _FILES FOLLOW_SYMLINKS CONFIGURE_DEPENDS "${jsonrpcpp_SOURCE_PATH}/include/*")
|
||||
source_group(TREE "${jsonrpcpp_SOURCE_PATH}/include" PREFIX "" FILES ${_FILES})
|
||||
target_sources("jsonrpcpp"
|
||||
PRIVATE ${_FILES}
|
||||
)
|
||||
target_include_directories("jsonrpcpp"
|
||||
INTERFACE "${jsonrpcpp}/include"
|
||||
INTERFACE "${jsonrpcpp_INSTALL_PATH}/include"
|
||||
)
|
||||
target_link_libraries("jsonrpcpp"
|
||||
INTERFACE "nlohmann_json::nlohmann_json"
|
||||
)
|
||||
endif()
|
||||
if(NOT TARGET badaix::jsonrpcpp)
|
||||
@@ -115,11 +144,20 @@ if(ENABLE_SSL) # wolfssl
|
||||
)
|
||||
endif()
|
||||
|
||||
if(TRUE) # Database support
|
||||
# PostGreSQL
|
||||
find_package("libpqxx" OPTIONAL)
|
||||
# MariaDB
|
||||
find_package("libmariadb" OPTIONAL)
|
||||
if(ENABLE_COMPRESSION) # Compression support
|
||||
# zlib-ng - zlib, but for modern systems
|
||||
ExternalContent(
|
||||
NAME "zlib-ng"
|
||||
GIT_URL "https://github.com/zlib-ng/zlib-ng.git"
|
||||
GIT_REF "2.3.2"
|
||||
GIT_CLONE_OPTIONS --depth 1 --no-single-branch --recurse-submodules
|
||||
GIT_CHECKOUT_OPTIONS --recurse-submodules
|
||||
CONFIGURE_ARGS -D BUILD_SHARED_LIBS:BOOL=OFF -D CMAKE_C_STANDARD:STRING=17 -D BUILD_TESTING:BOOL=OFF -D WITH_GTEST:BOOL=OFF -D WITH_FUZZERS:BOOL=OFF -D WITH_BENCHMARKS:BOOL=OFF -D WITH_BENCHMARK_APPS:BOOL=OFF -D INSTALL_UTILS:BOOL=OFF
|
||||
BUILD_ARGS --parallel --config Release --clean-first
|
||||
)
|
||||
find_package("zlib-ng" REQUIRED CONFIG
|
||||
PATHS "${zlib-ng_INSTALL_PATH}"
|
||||
)
|
||||
endif()
|
||||
|
||||
#--------------------------------------------------------------------------------#
|
||||
@@ -155,6 +193,7 @@ target_link_libraries("room-server"
|
||||
nlohmann_json::nlohmann_json
|
||||
badaix::jsonrpcpp
|
||||
websocketpp::websocketpp
|
||||
zlib-ng::zlib
|
||||
)
|
||||
|
||||
set_target_properties("room-server" PROPERTIES
|
||||
|
||||
Reference in New Issue
Block a user