summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindAvahi.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/modules/FindAvahi.cmake')
-rw-r--r--cmake/modules/FindAvahi.cmake63
1 files changed, 63 insertions, 0 deletions
diff --git a/cmake/modules/FindAvahi.cmake b/cmake/modules/FindAvahi.cmake
new file mode 100644
index 0000000..e0e6689
--- /dev/null
+++ b/cmake/modules/FindAvahi.cmake
@@ -0,0 +1,63 @@
+#.rst:
+# FindAvahi
+# ---------
+# Finds the avahi library
+#
+# This will define the following variables::
+#
+# AVAHI_FOUND - system has avahi
+# AVAHI_INCLUDE_DIRS - the avahi include directory
+# AVAHI_LIBRARIES - the avahi libraries
+# AVAHI_DEFINITIONS - the avahi definitions
+#
+# and the following imported targets::
+#
+# Avahi::Avahi - The avahi library
+
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(PC_AVAHI avahi-client QUIET)
+endif()
+
+find_path(AVAHI_CLIENT_INCLUDE_DIR NAMES avahi-client/client.h
+ PATHS ${PC_AVAHI_INCLUDEDIR})
+find_path(AVAHI_COMMON_INCLUDE_DIR NAMES avahi-common/defs.h
+ PATHS ${PC_AVAHI_INCLUDEDIR})
+find_library(AVAHI_CLIENT_LIBRARY NAMES avahi-client
+ PATHS ${PC_AVAHI_LIBDIR})
+find_library(AVAHI_COMMON_LIBRARY NAMES avahi-common
+ PATHS ${PC_AVAHI_LIBDIR})
+
+set(AVAHI_VERSION ${PC_AVAHI_VERSION})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Avahi
+ REQUIRED_VARS AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY
+ AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
+ VERSION_VAR AVAHI_VERSION)
+
+if(AVAHI_FOUND)
+ set(AVAHI_INCLUDE_DIRS ${AVAHI_CLIENT_INCLUDE_DIR}
+ ${AVAHI_COMMON_INCLUDE_DIR})
+ set(AVAHI_LIBRARIES ${AVAHI_CLIENT_LIBRARY}
+ ${AVAHI_COMMON_LIBRARY})
+ set(AVAHI_DEFINITIONS -DHAS_AVAHI=1 -DHAS_ZEROCONF=1)
+
+ if(NOT TARGET Avahi::Avahi)
+ add_library(Avahi::Avahi UNKNOWN IMPORTED)
+ set_target_properties(Avahi::Avahi PROPERTIES
+ IMPORTED_LOCATION "${AVAHI_CLIENT_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_CLIENT_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1)
+ endif()
+ if(NOT TARGET Avahi::AvahiCommon)
+ add_library(Avahi::AvahiCommon UNKNOWN IMPORTED)
+ set_target_properties(Avahi::AvahiCommon PROPERTIES
+ IMPORTED_LOCATION "${AVAHI_COMMON_LIBRARY}"
+ INTERFACE_INCLUDE_DIRECTORIES "${AVAHI_COMMON_INCLUDE_DIR}"
+ INTERFACE_COMPILE_DEFINITIONS HAS_AVAHI=1
+ INTERFACE_LINK_LIBRARIES Avahi::Avahi)
+ endif()
+endif()
+
+mark_as_advanced(AVAHI_CLIENT_INCLUDE_DIR AVAHI_COMMON_INCLUDE_DIR
+ AVAHI_CLIENT_LIBRARY AVAHI_COMMON_LIBRARY)