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.txt80
1 files changed, 45 insertions, 35 deletions
diff --git a/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt b/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
index d0f6a5ea5ab..79ffa2ec5fe 100644
--- a/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
+++ b/3rdparty/jsoncpp/src/lib_json/CMakeLists.txt
@@ -1,20 +1,8 @@
-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")
@@ -36,25 +24,13 @@ SET( PUBLIC_HEADERS
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)
+SET(jsoncpp_sources
+ json_tool.h
+ json_reader.cpp
+ json_valueiterator.inl
+ json_value.cpp
+ json_writer.cpp
+ version.h.in)
# Install instructions for this target
IF(JSONCPP_WITH_CMAKE_PACKAGE)
@@ -63,8 +39,42 @@ ELSE(JSONCPP_WITH_CMAKE_PACKAGE)
SET(INSTALL_EXPORT)
ENDIF(JSONCPP_WITH_CMAKE_PACKAGE)
-INSTALL( TARGETS jsoncpp_lib ${INSTALL_EXPORT}
+IF(BUILD_SHARED_LIBS)
+ ADD_DEFINITIONS( -DJSON_DLL_BUILD )
+ ADD_LIBRARY(jsoncpp_lib SHARED ${PUBLIC_HEADERS} ${jsoncpp_sources})
+ SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES VERSION ${JSONCPP_VERSION} SOVERSION ${JSONCPP_VERSION_MAJOR})
+ SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES OUTPUT_NAME jsoncpp
+ DEBUG_OUTPUT_NAME jsoncpp${DEBUG_LIBNAME_SUFFIX} )
+
+ INSTALL( TARGETS jsoncpp_lib ${INSTALL_EXPORT}
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
- ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR}
-)
+ ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR})
+
+ 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)
+
+ENDIF()
+
+IF(BUILD_STATIC_LIBS)
+ ADD_LIBRARY(jsoncpp_lib_static STATIC ${PUBLIC_HEADERS} ${jsoncpp_sources})
+ SET_TARGET_PROPERTIES( jsoncpp_lib_static PROPERTIES VERSION ${JSONCPP_VERSION} SOVERSION ${JSONCPP_VERSION_MAJOR})
+ SET_TARGET_PROPERTIES( jsoncpp_lib_static PROPERTIES OUTPUT_NAME jsoncpp
+ DEBUG_OUTPUT_NAME jsoncpp${DEBUG_LIBNAME_SUFFIX} )
+
+ INSTALL( TARGETS jsoncpp_lib_static ${INSTALL_EXPORT}
+ RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
+ LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
+ ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR})
+
+ IF(NOT CMAKE_VERSION VERSION_LESS 2.8.11)
+ TARGET_INCLUDE_DIRECTORIES( jsoncpp_lib_static PUBLIC
+ $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/${JSONCPP_INCLUDE_DIR}>
+ )
+ ENDIF(NOT CMAKE_VERSION VERSION_LESS 2.8.11)
+
+ENDIF()