]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - cmake/Modules/FindJson.cmake
Set ENABLE_SYSTEM_JSONCPP to TRUE by default
[dragonfireclient.git] / cmake / Modules / FindJson.cmake
index a5e9098f80f87a72b40b46deef1ec2f893971c12..cce2d387f689254a25a7ba12115109a23ffd5bc2 100644 (file)
@@ -1,26 +1,25 @@
-# Look for JSONCPP if asked to.
-# We use a bundled version by default because some distros ship versions of
-# JSONCPP that cause segfaults and other memory errors when we link with them.
-# See https://github.com/minetest/minetest/issues/1793
+# Look for JsonCpp, with fallback to bundeled version
 
 mark_as_advanced(JSON_LIBRARY JSON_INCLUDE_DIR)
-option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JSONCPP.  May cause segfaults and other memory errors!" FALSE)
+option(ENABLE_SYSTEM_JSONCPP "Enable using a system-wide JsonCpp" TRUE)
+set(USE_SYSTEM_JSONCPP FALSE)
 
 if(ENABLE_SYSTEM_JSONCPP)
        find_library(JSON_LIBRARY NAMES jsoncpp)
        find_path(JSON_INCLUDE_DIR json/allocator.h PATH_SUFFIXES jsoncpp)
 
-       include(FindPackageHandleStandardArgs)
-       find_package_handle_standard_args(Json DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR)
-
-       if(JSON_FOUND)
-               message(STATUS "Using system JSONCPP library.")
+       if(JSON_LIBRARY AND JSON_INCLUDE_DIR)
+               message(STATUS "Using JsonCpp provided by system.")
+               set(USE_SYSTEM_JSONCPP TRUE)
        endif()
 endif()
 
-if(NOT JSON_FOUND)
-       message(STATUS "Using bundled JSONCPP library.")
+if(NOT USE_SYSTEM_JSONCPP)
+       message(STATUS "Using bundled JsonCpp library.")
        set(JSON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jsoncpp)
        set(JSON_LIBRARY jsoncpp)
        add_subdirectory(lib/jsoncpp)
 endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Json DEFAULT_MSG JSON_LIBRARY JSON_INCLUDE_DIR)