1 find_path(JsonCpp_INCLUDE_DIR
"json/json.h" 2 PATH_SUFFIXES
"jsoncpp" 3 DOC
"jsoncpp include directory")
4 mark_as_advanced(JsonCpp_INCLUDE_DIR)
6 find_library(JsonCpp_LIBRARY
9 mark_as_advanced(JsonCpp_LIBRARY)
11 if (JsonCpp_INCLUDE_DIR AND EXISTS
"${JsonCpp_INCLUDE_DIR}/json/version.h")
12 file(STRINGS
"${JsonCpp_INCLUDE_DIR}/json/version.h" _JsonCpp_version_lines
13 REGEX
"JSONCPP_VERSION_[A-Z]+")
14 string(REGEX REPLACE
".*# *define +JSONCPP_VERSION_MAJOR +([0-9]+).*" "\\1" _JsonCpp_version_major
"${_JsonCpp_version_lines}")
15 string(REGEX REPLACE
".*# *define +JSONCPP_VERSION_MINOR +([0-9]+).*" "\\1" _JsonCpp_version_minor
"${_JsonCpp_version_lines}")
16 string(REGEX REPLACE
".*# *define +JSONCPP_VERSION_PATCH +([0-9]+).*" "\\1" _JsonCpp_version_patch
"${_JsonCpp_version_lines}")
17 set(JsonCpp_VERSION
"${_JsonCpp_version_major}.${_JsonCpp_version_minor}.${_JsonCpp_version_patch}")
18 unset(_JsonCpp_version_major)
19 unset(_JsonCpp_version_minor)
20 unset(_JsonCpp_version_patch)
21 unset(_JsonCpp_version_lines)
24 include(FindPackageHandleStandardArgs)
25 find_package_handle_standard_args(JsonCpp
26 REQUIRED_VARS JsonCpp_LIBRARY JsonCpp_INCLUDE_DIR
27 VERSION_VAR JsonCpp_VERSION)
30 set(JsonCpp_INCLUDE_DIRS "${JsonCpp_INCLUDE_DIR}
") 31 set(JsonCpp_LIBRARIES "${JsonCpp_LIBRARY}
") 33 if (NOT TARGET JsonCpp::JsonCpp) 34 include(vtkDetectLibraryType) 35 vtk_detect_library_type(jsoncpp_library_type 36 PATH "${JsonCpp_LIBRARY}
") 37 add_library(JsonCpp::JsonCpp "${jsoncpp_library_type}
" IMPORTED) 38 unset(jsoncpp_library_type) 39 set_target_properties(JsonCpp::JsonCpp PROPERTIES 40 IMPORTED_LOCATION "${JsonCpp_LIBRARY}
" 41 IMPORTED_IMPLIB "${JsonCpp_LIBRARY}
" 42 INTERFACE_INCLUDE_DIRECTORIES "${JsonCpp_INCLUDE_DIR}
")