summaryrefslogtreecommitdiff
blob: abb058a0ab6700ba32127be47bfd94d8199aa714 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
https://bugs.gentoo.org/show_bug.cgi?id=438060
https://github.com/FreeRDP/Remmina/issues/120

diff --git a/cmake/FindAVAHI.cmake b/cmake/FindAVAHI.cmake
index 0a5cc21..91878dc 100644
--- a/cmake/FindAVAHI.cmake
+++ b/cmake/FindAVAHI.cmake
@@ -17,29 +17,42 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, 
 # Boston, MA 02111-1307, USA.
 
-if(GTK3_FOUND)
-	set(_AVAHI_LIB_NAME avahi-ui-gtk3)
-	set(_AVAHI_PKG_NAME avahi-ui-gtk3>=0.6.30 avahi-client>=0.6.30)
-else()
-	set(_AVAHI_LIB_NAME avahi-ui)
-	set(_AVAHI_PKG_NAME avahi-ui>=0.6.30 avahi-client>=0.6.30)
+include(FindPkgConfig)
+
+if(PKG_CONFIG_FOUND)
+	pkg_check_modules(PC_AVAHI_CLIENT avahi-client)
+	if(GTK3_FOUND)
+		set(_AVAHI_UI_LIB_NAME avahi-ui-gtk3)
+		set(_AVAHI_UI_PKG_NAME avahi-ui-gtk3>=0.6.30 avahi-client>=0.6.30)
+	else()
+		set(_AVAHI_UI_LIB_NAME avahi-ui)
+		set(_AVAHI_UI_PKG_NAME avahi-ui>=0.6.30 avahi-client>=0.6.30)
+	endif()
+	pkg_check_modules(PC_AVAHI_UI ${_AVAHI_UI_PKG_NAME})
 endif()
 
-find_package(PkgConfig)
-pkg_check_modules(PC_AVAHI ${_AVAHI_PKG_NAME})
 
-find_path(AVAHI_INCLUDE_DIR avahi-ui/avahi-ui.h
-	HINTS ${PC_AVAHI_INCLUDEDIR} ${PC_AVAHI_INCLUDE_DIRS})
-
-find_library(AVAHI_LIBRARY NAMES ${_AVAHI_LIB_NAME}
-	HINTS ${PC_AVAHI_LIBDIR} ${PC_AVAHI_LIBRARY_DIRS})
+find_library(AVAHI_COMMON_LIBRARY NAMES avahi-common PATHS ${PC_AVAHI_CLIENT_LIBRARY_DIRS})
+if(AVAHI_COMMON_LIBRARY)
+	set(AVAHI_COMMON_FOUND TRUE)
+endif()
 
-include(FindPackageHandleStandardArgs)
+find_library(AVAHI_CLIENT_LIBRARY NAMES avahi-client PATHS ${PC_AVAHI_CLIENT_LIBRARY_DIRS})
+if(AVAHI_CLIENT_LIBRARY)
+	set(AVAHI_CLIENT_FOUND TRUE)
+endif()
 
-find_package_handle_standard_args(AVAHI DEFAULT_MSG AVAHI_LIBRARY AVAHI_INCLUDE_DIR)
+find_path(AVAHI_UI_INCLUDE_DIR avahi-ui/avahi-ui.h PATHS ${PC_AVAHI_UI_INCLUDE_DIRS})
+find_library(AVAHI_UI_LIBRARY NAMES ${_AVAHI_UI_LIB_NAME} PATHS ${PC_AVAHI_UI_LIBRARY_DIRS})
+if(AVAHI_UI_INCLUDE_DIR AND AVAHI_UI_LIBRARY)
+	set(AVAHI_UI_FOUND TRUE)
+endif()
 
-set(AVAHI_LIBRARIES ${AVAHI_LIBRARY})
-set(AVAHI_INCLUDE_DIRS ${AVAHI_INCLUDE_DIR})
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(AVAHI DEFAULT_MSG AVAHI_COMMON_FOUND AVAHI_CLIENT_FOUND AVAHI_UI_FOUND)
 
-mark_as_advanced(AVAHI_INCLUDE_DIR AVAHI_LIBRARY)
+if (AVAHI_FOUND)
+	set(AVAHI_INCLUDE_DIRS ${AVAHI_UI_INCLUDE_DIR})
+	set(AVAHI_LIBRARIES ${AVAHI_COMMON_LIBRARY} ${AVAHI_CLIENT_LIBRARY} ${AVAHI_UI_LIBRARY})
+endif()
 
+mark_as_advanced(AVAHI_INCLUDE_DIRS AVAHI_LIBRARIES)