27
27
pkg_check_modules(NL3 libnl-3.0 libnl-genl-3.0 libnl-route-3.0)
28
28
if (NOT NL3_FOUND)
29
29
pkg_search_module(NL2 libnl-2.0)
30
+ if (NL2_FOUND)
31
+ mark_as_advanced (NL2_INCLUDE_DIR NL2_LIBRARY)
32
+ endif ()
30
33
endif ()
31
34
32
35
# Try to find NL 2.0, 3.0 or 3.1 (/usr/include/netlink/version.h) or
@@ -38,11 +41,12 @@ else()
38
41
NAMES
39
42
netlink/version .h
40
43
HINTS
41
- "${NL3_libnl-3.0_INCLUDEDIR }"
42
- "${NL2_INCLUDEDIR } "
44
+ "${NL3_libnl-3.0_includeDIR }"
45
+ "${NL2_includeDIR } "
43
46
PATHS
44
47
$(SEARCHPATHS)
45
48
)
49
+
46
50
# NL version >= 2
47
51
if (NL3_INCLUDE_DIR)
48
52
find_library (NL3_LIBRARY
@@ -56,6 +60,16 @@ else()
56
60
PATHS
57
61
$(SEARCHPATHS)
58
62
)
63
+
64
+ if (NL3_LIBRARY)
65
+ set (NL_LIBRARIES ${NL_LIBRARIES} ${NL3_LIBRARY} )
66
+ set (NL_INCLUDE_DIRS ${NL_INCLUDE_DIRS} ${NL3_INCLUDE_DIR} )
67
+ set (HAVE_LIBNL 1)
68
+ mark_as_advanced (NL3_LIBRARY HAVE_LIBNL)
69
+ else ()
70
+
71
+ endif ()
72
+
59
73
find_library (NLGENL_LIBRARY
60
74
NAMES
61
75
nl-genl-3 nl-genl
@@ -67,6 +81,13 @@ else()
67
81
PATHS
68
82
$(SEARCHPATHS)
69
83
)
84
+
85
+ if (NLGENL_LIBRARY)
86
+ mark_as_advanced (NLGENL_LIBRARY)
87
+ set (NL_LIBRARIES ${NL_LIBRARIES} ${NLGENL_LIBRARY} )
88
+ set (HAVE_LIBNL_GENL 1)
89
+ endif ()
90
+
70
91
find_library (NLROUTE_LIBRARY
71
92
NAMES
72
93
nl-route-3 nl-route
@@ -78,67 +99,22 @@ else()
78
99
PATHS
79
100
$(SEARCHPATHS)
80
101
)
81
- #
82
- # If we don't have all of those libraries, we can't use libnl.
83
- #
84
- if (NL3_LIBRARY AND NLGENL_LIBRARY AND NLROUTE_LIBRARY)
85
- set (NL_LIBRARY ${NL3_LIBRARY} )
86
- if (NL3_INCLUDE_DIR)
87
- # NL2 and NL3 are similar and just affect how the version is reported in
88
- # the --version output. In cast of doubt, assume NL3 since a library
89
- # without version number could be any of 2.0, 3.0 or 3.1.
90
- if (NOT NL3_FOUND AND NL2_FOUND)
91
- set (HAVE_LIBNL2 1)
92
- else ()
93
- set (HAVE_LIBNL3 1)
94
- endif ()
95
- endif ()
102
+
103
+ if (NLROUTE_LIBRARY)
104
+ mark_as_advanced (NLROUTE_LIBRARY)
105
+ set (NL_LIBRARIES ${NL_LIBRARIES} ${NLROUTE_LIBRARY} )
106
+ set (HAVE_LIBNL_ROUTE 1)
96
107
endif ()
97
- set (NL_INCLUDE_DIR ${NL3_INCLUDE_DIR} )
98
- endif ()
99
108
100
- # libnl-2 and libnl-3 not found, try NL version 1
101
- if (NOT (NL_LIBRARY AND NL_INCLUDE_DIR))
102
- pkg_search_module(NL1 libnl-1)
103
- find_path (NL1_INCLUDE_DIR
104
- NAMES
105
- netlink/netlink.h
106
- HINTS
107
- "${NL1_INCLUDEDIR} "
108
- PATHS
109
- $(SEARCHPATHS)
110
- )
111
- find_library (NL1_LIBRARY
112
- NAMES
113
- nl
114
- PATH_SUFFIXES
115
- lib64 lib
116
- HINTS
117
- "${NL1_LIBDIR} "
118
- PATHS
119
- $(SEARCHPATHS)
120
- )
121
- set (NL_LIBRARY ${NL1_LIBRARY} )
122
- set (NL_INCLUDE_DIR ${NL1_INCLUDE_DIR} )
123
- if (NL1_LIBRARY AND NL1_INCLUDE_DIR)
124
- set (HAVE_LIBNL1 1)
109
+ if (NOT NL3_FOUND AND NL2_FOUND)
110
+ set (HAVE_LIBNL2 1)
111
+ else ()
112
+ set (HAVE_LIBNL3 1)
125
113
endif ()
126
114
endif ()
127
115
endif ()
128
- # MESSAGE(STATUS "LIB Found: ${NL_LIBRARY}, Suffix: ${NLSUFFIX}\n 1:${HAVE_LIBNL1}, 2:${HAVE_LIBNL2}, 3:${HAVE_LIBNL3}.")
129
116
130
- # handle the QUIETLY and REQUIRED arguments and set NL_FOUND to TRUE if
131
- # all listed variables are TRUE
132
- INCLUDE (FindPackageHandleStandardArgs)
133
- FIND_PACKAGE_HANDLE_STANDARD_ARGS(NL DEFAULT_MSG NL_LIBRARY NL_INCLUDE_DIR)
134
-
135
- IF (NL_FOUND)
136
- set (NL_LIBRARIES ${NLGENL_LIBRARY} ${NLROUTE_LIBRARY} ${NL_LIBRARY} )
137
- set (NL_INCLUDE_DIRS ${NL_INCLUDE_DIR} )
138
- set (HAVE_LIBNL 1)
139
- else ()
140
- set (NL_LIBRARIES )
141
- set (NL_INCLUDE_DIRS)
142
- endif ()
117
+ include (FindPackageHandleStandardArgs)
118
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(NL DEFAULT_MSG NL_LIBRARIES NL_INCLUDE_DIRS)
119
+ mark_as_advanced (NL_LIBRARIES NL_INCLUDE_DIRS)
143
120
144
- MARK_AS_ADVANCED ( NL_LIBRARIES NL_INCLUDE_DIRS )
0 commit comments