summaryrefslogtreecommitdiffstats
path: root/polly/cmake/FindJsoncpp.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'polly/cmake/FindJsoncpp.cmake')
-rw-r--r--polly/cmake/FindJsoncpp.cmake58
1 files changed, 58 insertions, 0 deletions
diff --git a/polly/cmake/FindJsoncpp.cmake b/polly/cmake/FindJsoncpp.cmake
new file mode 100644
index 00000000000..25c6828fdb1
--- /dev/null
+++ b/polly/cmake/FindJsoncpp.cmake
@@ -0,0 +1,58 @@
+find_package(PkgConfig QUIET)
+if (PkgConfig_FOUND)
+ pkg_search_module(JSONCPP jsoncpp QUIET)
+
+ # Get the libraries full paths, to be consistent with find_library().
+ set(fulllibs)
+ foreach (libname IN LISTS JSONCPP_LIBRARIES)
+ find_library(lib NAMES ${libname}
+ HINTS ${JSONCPP_LIBDIR} ${JSONCPP_LIBRARY_DIRS}
+ NO_DEFAULT_PATH
+ )
+ if (lib)
+ list(APPEND fulllibs ${lib})
+ else ()
+ list(APPEND fulllibs ${libname})
+ endif ()
+ endforeach ()
+ set(JSONCPP_LIBRARIES ${fulllibs})
+
+ set(JSONCPP_DEFINITIONS ${JSONCPP_CFLAGS})
+else ()
+ set(JSONCPP_DEFINITIONS)
+
+ find_path(JSONCPP_INCLUDE_DIR json/json.h
+ PATHS ENV JSONCPP_INCLUDE ENV JSONCPP_DIR
+ PATH_SUFFIXES jsoncpp
+ NO_DEFAULT_PATH
+ )
+ find_path(JSONCPP_INCLUDE_DIR json/json.h
+ PATH_SUFFIXES jsoncpp
+ )
+ mark_as_advanced(JSONCPP_INCLUDE_DIR)
+ set(JSONCPP_INCLUDE_DIRS "${JSONCPP_INCLUDE_DIR}")
+
+ find_library(JSONCPP_LIBRARY NAMES jsoncpp
+ HINTS ENV JSONCPP_LIB ENV JSONCPP_DIR
+ NO_DEFAULT_PATH
+ )
+ find_library(JSONCPP_LIBRARY NAMES jsoncpp)
+ mark_as_advanced(JSONCPP_LIBRARY)
+ set(JSON_LIBRARIES ${JSON_LIBRARY})
+endif ()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Jsoncpp DEFAULT_MSG JSONCPP_INCLUDE_DIRS JSONCPP_LIBRARIES JSONCPP_DEFINITIONS)
+
+if (Jsoncpp_FOUND)
+ add_library(jsoncpp INTERFACE IMPORTED)
+ foreach (incl IN LISTS JSONCPP_INCLUDE_DIRS)
+ set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${incl})
+ endforeach ()
+ foreach (libname IN LISTS JSONCPP_LIBRARIES)
+ set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${lib})
+ endforeach ()
+ foreach (opt IN LISTS JSONCPP_DEFINITIONS)
+ set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${opt})
+ endforeach ()
+endif ()
OpenPOWER on IntegriCloud