Scope JSON_DLL_BUILD to shared lib target only (#1660)

Replaced directory-wide add_compile_definitions/add_definitions with
target_compile_definitions PRIVATE on the shared lib target, so
JSON_DLL_BUILD is not incorrectly applied to static and object libs.

Fixes #1634
diff --git a/src/lib_json/CMakeLists.txt b/src/lib_json/CMakeLists.txt
index 86722ac..9658941 100644
--- a/src/lib_json/CMakeLists.txt
+++ b/src/lib_json/CMakeLists.txt
@@ -107,12 +107,6 @@
 
 
 if(BUILD_SHARED_LIBS)
-    if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12.0)
-        add_compile_definitions(JSON_DLL_BUILD)
-    else()
-        add_definitions(-DJSON_DLL_BUILD)
-    endif()
-
     set(SHARED_LIB ${PROJECT_NAME}_lib)
     add_library(${SHARED_LIB} SHARED ${PUBLIC_HEADERS} ${JSONCPP_SOURCES})
     set_target_properties(${SHARED_LIB} PROPERTIES
@@ -122,6 +116,8 @@
         POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS}
     )
 
+    target_compile_definitions(${SHARED_LIB} PRIVATE JSON_DLL_BUILD)
+
     # Set library's runtime search path on OSX
     if(APPLE)
         set_target_properties(${SHARED_LIB} PROPERTIES INSTALL_RPATH "@loader_path/.")