blob: 2d0d41f5fb252065d3a02f7ab830454f995a2ca8 [file] [log] [blame]
#[=======================================================================[.rst:
FindJSONC
-------
Finds the traceevent library.
Imported Targets
^^^^^^^^^^^^^^^^
This module defines the :prop_tgt:`IMPORTED` targets:
``jsonc::jsonc``
Defined if the system has json-c.
Result Variables
^^^^^^^^^^^^^^^^
``JSONC_FOUND``
True if the system has the json-c library.
``JSONC_VERSION``
The version of the json-c library which was found.
``JSONC_INCLUDE_DIRS``
Include directories needed to use json-c.
``JSONC_LIBRARIES``
Libraries needed to link to json-c.
Cache Variables
^^^^^^^^^^^^^^^
``JSONC_INCLUDE_DIR``
The directory containing ``json.h``.
``JSONC_LIBRARY``
The path to the traceevent library.
#]=======================================================================]
find_package(PkgConfig QUIET)
pkg_check_modules(PC_JSONC QUIET json-c)
set(JSONC_VERSION ${PC_JSONC_VERSION})
set(JSONC_DEFINITIONS ${PC_JSONC_CFLAGS_OTHER})
find_path(JSONC_INCLUDE_DIR json.h
HINTS ${PC_JSONC_INCLUDEDIR} ${PC_JSONC_INCLUDE_DIRS}
PATH_SUFFIXES json-c)
find_library(JSONC_LIBRARY NAMES json-c libjson-c
HINTS ${PC_JSONC_LIBDIR} ${PC_JSONC_LIBRARY_DIRS})
find_library(JSONC_LIBRARY NAMES json-c libjson-c
HINTS ${PC_JSON-C_LIBDIR} ${PC_JSON-C_LIBRARY_DIRS})
mark_as_advanced(JSONC_INCLUDE_DIR JSONC_LIBRARY)
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set JSONC_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(JSONC DEFAULT_MSG
JSONC_LIBRARY JSONC_INCLUDE_DIR)
if(JSONC_FOUND)
set(JSONC_LIBRARIES ${JSONC_LIBRARY})
set(JSONC_INCLUDE_DIRS ${JSONC_INCLUDE_DIR})
if(NOT TARGET jsonc::jsonc)
add_library(jsonc::jsonc UNKNOWN IMPORTED)
set_target_properties(jsonc::jsonc
PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${JSONC_INCLUDE_DIRS}"
INTERFACE_COMPILE_DEFINITIONS "${JSONC_DEFINITIONS}"
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${JSONC_LIBRARIES}")
endif()
endif()