Fixes for compiling with a newer (system) jsoncpp (#4429)

* Move included json code to jsoncpp subdirectory

This is needed to avoid having to specify the minetest src directory
as a system include when fixing the json includes.

* Fix json includes

They used "", so that the compiler searches the project's directory
first. The result was that when compiling with a system jsoncpp,
the project's own version of json.h was still included, instead of
the system version.

The includes now use <>, so a system location, or one specified with
'-Ilocation' is searched only.

* Fix for jsoncpp deprecated function warning

When compiling with a newer version of jsoncpp (and
ENABLE_SYSTEM_JSONCPP=true), jsoncpp emits a warning
about a deprecated function that minetest uses.
This commit is contained in:
Rogier-5 2016-08-10 12:10:00 +02:00 committed by est31
parent 058a869b70
commit 4503b5097f
11 changed files with 13 additions and 8 deletions

@ -20,8 +20,8 @@ endif()
if(NOT JSONCPP_FOUND) if(NOT JSONCPP_FOUND)
message(STATUS "Using bundled JSONCPP library.") message(STATUS "Using bundled JSONCPP library.")
set(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/json) set(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/jsoncpp)
set(JSON_LIBRARY jsoncpp) set(JSON_LIBRARY jsoncpp)
add_subdirectory(json) add_subdirectory(jsoncpp/json)
endif() endif()

@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#ifndef __CONVERT_JSON_H__ #ifndef __CONVERT_JSON_H__
#define __CONVERT_JSON_H__ #define __CONVERT_JSON_H__
#include "json/json.h" #include <json/json.h>
struct ModStoreMod; struct ModStoreMod;
struct ModStoreModDetails; struct ModStoreModDetails;

@ -26,7 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <vector> #include <vector>
#include <string> #include <string>
#include <map> #include <map>
#include "json/json.h" #include <json/json.h>
#include "config.h" #include "config.h"
#define MODNAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyz0123456789_" #define MODNAME_ALLOWED_CHARS "abcdefghijklmnopqrstuvwxyz0123456789_"

@ -33,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h" #include "porting.h"
#include "mg_schematic.h" #include "mg_schematic.h"
#include "noise.h" #include "noise.h"
#include "json/json.h" #include <json/json.h>
struct EnumString es_TileAnimationType[] = struct EnumString es_TileAnimationType[] =
{ {
@ -1250,8 +1250,13 @@ static bool push_json_value_helper(lua_State *L, const Json::Value &value,
lua_newtable(L); lua_newtable(L);
for (Json::Value::const_iterator it = value.begin(); for (Json::Value::const_iterator it = value.begin();
it != value.end(); ++it) { it != value.end(); ++it) {
#ifndef JSONCPP_STRING
const char *str = it.memberName(); const char *str = it.memberName();
lua_pushstring(L, str ? str : ""); lua_pushstring(L, str ? str : "");
#else
std::string str = it.name();
lua_pushstring(L, str.c_str());
#endif
push_json_value_helper(L, *it, nullindex); push_json_value_helper(L, *it, nullindex);
lua_rawset(L, -3); lua_rawset(L, -3);
} }

@ -23,7 +23,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "common/c_content.h" #include "common/c_content.h"
#include "cpp_api/s_async.h" #include "cpp_api/s_async.h"
#include "serialization.h" #include "serialization.h"
#include "json/json.h" #include <json/json.h>
#include "cpp_api/s_security.h" #include "cpp_api/s_security.h"
#include "porting.h" #include "porting.h"
#include "debug.h" #include "debug.h"

@ -29,7 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "porting.h" #include "porting.h"
#include "log.h" #include "log.h"
#include "network/networkprotocol.h" #include "network/networkprotocol.h"
#include "json/json.h" #include <json/json.h>
#include "convert_json.h" #include "convert_json.h"
#include "httpfetch.h" #include "httpfetch.h"
#include "util/string.h" #include "util/string.h"

@ -20,7 +20,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include <iostream> #include <iostream>
#include "config.h" #include "config.h"
#include "mods.h" #include "mods.h"
#include "json/json.h" #include <json/json.h>
#ifndef SERVERLIST_HEADER #ifndef SERVERLIST_HEADER
#define SERVERLIST_HEADER #define SERVERLIST_HEADER