Merge pull request #23092 from webosbrew/feature/webOS
[xbmc.git] / cmake / modules / FindAvahi.cmake
blobe0e6689b5214170dd8a3111b9b35879230396bc5
1 #.rst:
2 # FindAvahi
3 # ---------
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
17 if(PKG_CONFIG_FOUND)
18   pkg_check_modules(PC_AVAHI avahi-client QUIET)
19 endif()
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)
38 if(AVAHI_FOUND)
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)
51   endif()
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)
59   endif()
60 endif()
62 mark_as_advanced(AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
63                  AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY)