diff --git a/CMakeLists.txt b/CMakeLists.txt index aa5171822..ed1a46f17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,6 +96,7 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) find_package(MariaDB) +find_package(JSON) # Create a /resServer directory make_directory(${CMAKE_BINARY_DIR}/resServer) @@ -284,7 +285,7 @@ add_subdirectory(dPhysics) add_subdirectory(dServer) # Create a list of common libraries shared between all binaries -set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "MariaDB::ConnCpp" "magic_enum") +set(COMMON_LIBRARIES "dCommon" "dDatabase" "dNet" "raknet" "MariaDB::ConnCpp" "magic_enum" "nlohmann_json::nlohmann_json") # Add platform specific common libraries if(UNIX) diff --git a/cmake/FindJSON.cmake b/cmake/FindJSON.cmake new file mode 100644 index 000000000..291ebcd35 --- /dev/null +++ b/cmake/FindJSON.cmake @@ -0,0 +1,20 @@ +include(FetchContent) + +message(STATUS "Fetching json...") + +FetchContent_Declare( + json + GIT_REPOSITORY https://github.com/nlohmann/json + GIT_TAG v3.11.3 +) + +FetchContent_GetProperties(json) +if(NOT json_POPULATED) + FetchContent_Populate(json) + add_subdirectory(${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL) +endif() + +FetchContent_MakeAvailable(json) + +message(STATUS "json fetched and is now ready.") +set(JSON_FOUND TRUE)