[isl++] add isl_constraint to C++ bindings [NFC]
[polly-mirror.git] / cmake / FindJsoncpp.cmake
blob25c6828fdb102e1c66bc0728025cf5cd940951fd
1 find_package(PkgConfig QUIET)
2 if (PkgConfig_FOUND)
3   pkg_search_module(JSONCPP jsoncpp QUIET)
5   # Get the libraries full paths, to be consistent with find_library().
6   set(fulllibs)
7   foreach (libname IN LISTS JSONCPP_LIBRARIES)
8     find_library(lib NAMES ${libname} 
9       HINTS ${JSONCPP_LIBDIR} ${JSONCPP_LIBRARY_DIRS}
10       NO_DEFAULT_PATH
11     )
12     if (lib)
13       list(APPEND fulllibs ${lib})
14     else ()
15       list(APPEND fulllibs ${libname})
16     endif ()
17   endforeach ()
18   set(JSONCPP_LIBRARIES ${fulllibs})
20   set(JSONCPP_DEFINITIONS ${JSONCPP_CFLAGS})
21 else ()
22   set(JSONCPP_DEFINITIONS)
24   find_path(JSONCPP_INCLUDE_DIR json/json.h
25     PATHS ENV JSONCPP_INCLUDE ENV JSONCPP_DIR
26     PATH_SUFFIXES jsoncpp
27     NO_DEFAULT_PATH
28   )
29   find_path(JSONCPP_INCLUDE_DIR json/json.h
30     PATH_SUFFIXES jsoncpp
31   )
32   mark_as_advanced(JSONCPP_INCLUDE_DIR)
33   set(JSONCPP_INCLUDE_DIRS "${JSONCPP_INCLUDE_DIR}")
35   find_library(JSONCPP_LIBRARY NAMES jsoncpp
36     HINTS ENV JSONCPP_LIB ENV JSONCPP_DIR
37     NO_DEFAULT_PATH
38   )
39   find_library(JSONCPP_LIBRARY NAMES jsoncpp)
40   mark_as_advanced(JSONCPP_LIBRARY)
41   set(JSON_LIBRARIES ${JSON_LIBRARY})
42 endif ()
44 include(FindPackageHandleStandardArgs)
45 find_package_handle_standard_args(Jsoncpp DEFAULT_MSG JSONCPP_INCLUDE_DIRS JSONCPP_LIBRARIES JSONCPP_DEFINITIONS)
47 if (Jsoncpp_FOUND)
48   add_library(jsoncpp INTERFACE IMPORTED)
49   foreach (incl IN LISTS JSONCPP_INCLUDE_DIRS)
50     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${incl})
51   endforeach ()
52   foreach (libname IN LISTS JSONCPP_LIBRARIES)
53     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${lib})
54   endforeach ()
55   foreach (opt IN LISTS JSONCPP_DEFINITIONS)
56     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${opt})
57   endforeach ()
58 endif ()