summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/jsoncpp/src/lib_json/CMakeLists.txt')
-rw-r--r--3rdparty/jsoncpp/src/lib_json/CMakeLists.txt70
1 files changed, 70 insertions, 0 deletions
diff --git a/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt b/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
new file mode 100644
index 00000000000..d0f6a5ea5ab
--- /dev/null
+++ b/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
@@ -0,0 +1,70 @@
+OPTION(JSONCPP_LIB_BUILD_SHARED "Build jsoncpp_lib as a shared library." OFF)
+IF(BUILD_SHARED_LIBS)
+ SET(JSONCPP_LIB_BUILD_SHARED ON)
+ENDIF(BUILD_SHARED_LIBS)
+
+IF(JSONCPP_LIB_BUILD_SHARED)
+ SET(JSONCPP_LIB_TYPE SHARED)
+ ADD_DEFINITIONS( -DJSON_DLL_BUILD )
+ELSE(JSONCPP_LIB_BUILD_SHARED)
+ SET(JSONCPP_LIB_TYPE STATIC)
+ENDIF(JSONCPP_LIB_BUILD_SHARED)
+
+if( CMAKE_COMPILER_IS_GNUCXX )
+ #Get compiler version.
+ execute_process( COMMAND ${CMAKE_CXX_COMPILER} -dumpversion
+ OUTPUT_VARIABLE GNUCXX_VERSION )
+
+ #-Werror=* was introduced -after- GCC 4.1.2
+ if( GNUCXX_VERSION VERSION_GREATER 4.1.2 )
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=strict-aliasing")
+ endif()
+endif( CMAKE_COMPILER_IS_GNUCXX )
+
+SET( JSONCPP_INCLUDE_DIR ../../include )
+
+SET( PUBLIC_HEADERS
+ ${JSONCPP_INCLUDE_DIR}/json/config.h
+ ${JSONCPP_INCLUDE_DIR}/json/forwards.h
+ ${JSONCPP_INCLUDE_DIR}/json/features.h
+ ${JSONCPP_INCLUDE_DIR}/json/value.h
+ ${JSONCPP_INCLUDE_DIR}/json/reader.h
+ ${JSONCPP_INCLUDE_DIR}/json/writer.h
+ ${JSONCPP_INCLUDE_DIR}/json/assertions.h
+ ${JSONCPP_INCLUDE_DIR}/json/version.h
+ )
+
+SOURCE_GROUP( "Public API" FILES ${PUBLIC_HEADERS} )
+
+ADD_LIBRARY( jsoncpp_lib ${JSONCPP_LIB_TYPE}
+ ${PUBLIC_HEADERS}
+ json_tool.h
+ json_reader.cpp
+ json_batchallocator.h
+ json_valueiterator.inl
+ json_value.cpp
+ json_writer.cpp
+ version.h.in
+ )
+SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES OUTPUT_NAME jsoncpp )
+SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES VERSION ${JSONCPP_VERSION} SOVERSION ${JSONCPP_VERSION_MAJOR} )
+
+IF(NOT CMAKE_VERSION VERSION_LESS 2.8.11)
+ TARGET_INCLUDE_DIRECTORIES( jsoncpp_lib PUBLIC
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/${JSONCPP_INCLUDE_DIR}>
+ )
+ENDIF(NOT CMAKE_VERSION VERSION_LESS 2.8.11)
+
+# Install instructions for this target
+IF(JSONCPP_WITH_CMAKE_PACKAGE)
+ SET(INSTALL_EXPORT EXPORT jsoncpp)
+ELSE(JSONCPP_WITH_CMAKE_PACKAGE)
+ SET(INSTALL_EXPORT)
+ENDIF(JSONCPP_WITH_CMAKE_PACKAGE)
+
+INSTALL( TARGETS jsoncpp_lib ${INSTALL_EXPORT}
+ RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
+ LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
+ ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR}
+)