[ScopInfo] Pass name to ScopStmt ctor. NFC.
[polly-mirror.git] / cmake / FindJsoncpp.cmake
blobcee44d10ce7442af8d29f691c2421321d628e172
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(jsoncpp_lib${libname} NAMES ${libname}
9       HINTS ${JSONCPP_LIBDIR} ${JSONCPP_LIBRARY_DIRS}
10     )
11     if (jsoncpp_lib${libname})
12       list(APPEND fulllibs ${jsoncpp_lib${libname}})
13     else ()
14       list(APPEND fulllibs ${libname})
15     endif ()
16   endforeach ()
17   set(JSONCPP_LIBRARIES ${fulllibs})
19   set(JSONCPP_DEFINITIONS ${JSONCPP_CFLAGS})
20 else ()
21   set(JSONCPP_DEFINITIONS)
23   find_path(JSONCPP_INCLUDE_DIR json/json.h
24     PATHS ENV JSONCPP_INCLUDE ENV JSONCPP_DIR
25     PATH_SUFFIXES jsoncpp
26     NO_DEFAULT_PATH
27   )
28   find_path(JSONCPP_INCLUDE_DIR json/json.h
29     PATH_SUFFIXES jsoncpp
30   )
31   mark_as_advanced(JSONCPP_INCLUDE_DIR)
32   set(JSONCPP_INCLUDE_DIRS "${JSONCPP_INCLUDE_DIR}")
34   find_library(JSONCPP_LIBRARY NAMES jsoncpp
35     HINTS ENV JSONCPP_LIB ENV JSONCPP_DIR
36     NO_DEFAULT_PATH
37   )
38   find_library(JSONCPP_LIBRARY NAMES jsoncpp)
39   mark_as_advanced(JSONCPP_LIBRARY)
40   set(JSON_LIBRARIES ${JSON_LIBRARY})
41 endif ()
43 include(FindPackageHandleStandardArgs)
44 find_package_handle_standard_args(Jsoncpp DEFAULT_MSG JSONCPP_INCLUDE_DIRS JSONCPP_LIBRARIES JSONCPP_DEFINITIONS)
46 if (Jsoncpp_FOUND)
47   add_library(jsoncpp INTERFACE IMPORTED)
48   foreach (incl IN LISTS JSONCPP_INCLUDE_DIRS)
49     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${incl})
50   endforeach ()
51   foreach (libname IN LISTS JSONCPP_LIBRARIES)
52     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${libname})
53   endforeach ()
54   foreach (opt IN LISTS JSONCPP_DEFINITIONS)
55     set_property(TARGET jsoncpp APPEND PROPERTY INTERFACE_COMPILE_OPTIONS ${opt})
56   endforeach ()
57 endif ()