Blob Blame History Raw
From 9c4b7ef5947c2bf972fb0c5458b721d6615b5bb1 Mon Sep 17 00:00:00 2001
From: ElXreno <elxreno@gmail.com>
Date: Thu, 2 Jan 2020 12:06:05 +0300
Subject: [PATCH 3/3] Unbundle json-parser

Signed-off-by: ElXreno <elxreno@gmail.com>
---
 CMakeLists.txt                      | 17 ++++++-----------
 src/engine/client/http.cpp          |  2 +-
 src/engine/client/serverbrowser.cpp |  2 +-
 src/engine/client/serverbrowser.h   |  2 +-
 src/engine/client/updater.cpp       |  2 +-
 src/engine/shared/json.h            |  2 +-
 6 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f1a042c92..b3e8985ca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -375,6 +375,8 @@ else()
   set(WEBSOCKETS_INCLUDE_DIRS)
 endif()
 
+pkg_check_modules(JSONPARSER REQUIRED json-parser)
+
 
 if(TARGET_OS AND TARGET_OS STREQUAL "mac")
   find_program(CMAKE_OTOOL otool)
@@ -453,6 +455,8 @@ if(WEBSOCKETS)
   show_dependency_status("Websockets" WEBSOCKETS)
 endif()
 
+show_dependency_status("json-parser" JSONPARSER)
+
 if(CLIENT AND NOT(CURL_FOUND))
   message(SEND_ERROR "You must install Curl to compile DDNet")
 endif()
@@ -584,16 +588,6 @@ if(NOT(GTEST_FOUND) AND DOWNLOAD_GTEST)
   endif()
 endif()
 
-########################################################################
-# DEPENDENCY COMPILATION
-########################################################################
-
-set_src(DEP_JSON_SRC GLOB src/engine/external/json-parser json.c json.h)
-add_library(json EXCLUDE_FROM_ALL OBJECT ${DEP_JSON_SRC})
-
-list(APPEND TARGETS_DEP json)
-set(DEP_JSON $<TARGET_OBJECTS:json>)
-
 ########################################################################
 # DATA
 ########################################################################
@@ -1583,11 +1577,12 @@ set(GAME_GENERATED_SHARED
   src/game/generated/protocolglue.h
 )
 
-set(DEPS ${DEP_JSON} ${ZLIB_DEP})
+set(DEPS ${ZLIB_DEP})
 
 # Libraries
 set(LIBS
   ${CRYPTO_LIBRARIES}
+  ${JSONPARSER_LIBRARIES}
   ${WEBSOCKETS_LIBRARIES}
   ${ZLIB_LIBRARIES}
   ${PLATFORM_LIBS}
diff --git a/src/engine/client/http.cpp b/src/engine/client/http.cpp
index be8cdc5d5..704a0d6c4 100644
--- a/src/engine/client/http.cpp
+++ b/src/engine/client/http.cpp
@@ -2,7 +2,7 @@
 
 #include <base/system.h>
 #include <engine/engine.h>
-#include <engine/external/json-parser/json.h>
+#include <json-parser/json.h>
 #include <engine/shared/config.h>
 #include <engine/storage.h>
 #include <game/version.h>
diff --git a/src/engine/client/serverbrowser.cpp b/src/engine/client/serverbrowser.cpp
index 793d5bce7..c1ddb100f 100644
--- a/src/engine/client/serverbrowser.cpp
+++ b/src/engine/client/serverbrowser.cpp
@@ -20,7 +20,7 @@
 
 #include <mastersrv/mastersrv.h>
 
-#include <engine/external/json-parser/json.h>
+#include <json-parser/json.h>
 
 #include "serverbrowser.h"
 class SortWrap
diff --git a/src/engine/client/serverbrowser.h b/src/engine/client/serverbrowser.h
index ec35a6e75..ed59a1dbf 100644
--- a/src/engine/client/serverbrowser.h
+++ b/src/engine/client/serverbrowser.h
@@ -4,11 +4,11 @@
 #define ENGINE_CLIENT_SERVERBROWSER_H
 
 #include <engine/config.h>
-#include <engine/external/json-parser/json.h>
 #include <engine/masterserver.h>
 #include <engine/serverbrowser.h>
 #include <engine/shared/config.h>
 #include <engine/shared/memheap.h>
+#include <json-parser/json.h>
 
 class CServerBrowser : public IServerBrowser
 {
diff --git a/src/engine/client/updater.cpp b/src/engine/client/updater.cpp
index 0004c85bd..56cd89c9f 100644
--- a/src/engine/client/updater.cpp
+++ b/src/engine/client/updater.cpp
@@ -2,7 +2,7 @@
 #include <base/system.h>
 #include <engine/client.h>
 #include <engine/engine.h>
-#include <engine/external/json-parser/json.h>
+#include <json-parser/json.h>
 #include <engine/shared/json.h>
 #include <engine/storage.h>
 #include <game/version.h>
diff --git a/src/engine/shared/json.h b/src/engine/shared/json.h
index 8a09b2c1a..8fd558f62 100644
--- a/src/engine/shared/json.h
+++ b/src/engine/shared/json.h
@@ -1,7 +1,7 @@
 #ifndef ENGINE_SHARED_JSON_H
 #define ENGINE_SHARED_JSON_H
 
-#include <engine/external/json-parser/json.h>
+#include <json-parser/json.h>
 
 const struct _json_value *json_object_get(const json_value *object, const char *index);
 const struct _json_value *json_array_get(const json_value *array, int index);
-- 
2.28.0