4 # Finds the avahi library
6 # This will define the following variables::
8 # AVAHI_FOUND - system has avahi
9 # AVAHI_INCLUDE_DIRS - the avahi include directory
10 # AVAHI_LIBRARIES - the avahi libraries
11 # AVAHI_DEFINITIONS - the avahi definitions
13 # and the following imported targets::
15 # Avahi::Avahi - The avahi library
18 pkg_check_modules(PC_AVAHI avahi-client QUIET)
21 find_path(AVAHI_CLIENT_INCLUDE_DIR NAMES avahi-client/client.h
22 PATHS ${PC_AVAHI_INCLUDEDIR})
23 find_path(AVAHI_COMMON_INCLUDE_DIR NAMES avahi-common/defs.h
24 PATHS ${PC_AVAHI_INCLUDEDIR})
25 find_library(AVAHI_CLIENT_LIBRARY NAMES avahi-client
26 PATHS ${PC_AVAHI_LIBDIR})
27 find_library(AVAHI_COMMON_LIBRARY NAMES avahi-common
28 PATHS ${PC_AVAHI_LIBDIR})
30 set(AVAHI_VERSION ${PC_AVAHI_VERSION})
32 include(FindPackageHandleStandardArgs)
33 find_package_handle_standard_args(Avahi
34 REQUIRED_VARS AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY
35 AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
36 VERSION_VAR AVAHI_VERSION)
39 set(AVAHI_INCLUDE_DIRS ${AVAHI_CLIENT_INCLUDE_DIR}
40 ${AVAHI_COMMON_INCLUDE_DIR})
41 set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY}
42 ${AVAHI_COMMON_LIBRARY})
43 set(AVAHI_DEFINITIONS -DHAS_AVAHI=1 -DHAS_ZEROCONF=1)
45 if(NOT TARGET Avahi::Avahi)
46 add_library(Avahi::Avahi UNKNOWN IMPORTED)
47 set_target_properties(Avahi::Avahi PROPERTIES
48 IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}"
49 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}"
50 INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1)
52 if(NOT TARGET Avahi::AvahiCommon)
53 add_library(Avahi::AvahiCommon UNKNOWN IMPORTED)
54 set_target_properties(Avahi::AvahiCommon PROPERTIES
55 IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}"
56 INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}"
57 INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1
58 INTERFACE_LINK_LIBRARIES Avahi::Avahi)
62 mark_as_advanced(AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
63 AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY)