Warning, /plasma/ksystemstats/cmake/FindNL.cmake is written in an unsupported language. File is not indexed.
0001 # SPDX-License-Identifier: BSD-3-Clause 0002 # SPDX-FileCopyrightText: 2013 Jörg Mayer 0003 # SPDX-FileCopyrightText: 2017 Peter Wu 0004 # 0005 # Find the native netlink includes and library 0006 # 0007 # If they exist, differentiate between versions 1, 2 and 3. 0008 # Version 1 does not have netlink/version.h 0009 # Version 2 started separating libraries (libnl{,-genl,-route}). 0010 # Version 3 (>= 3.2) started appending the major version number as suffix to 0011 # library names (libnl-3) 0012 # 0013 # NL_INCLUDE_DIRS - where to find libnl.h, etc. 0014 # NL_LIBRARIES - List of libraries when using libnl. 0015 # NL_FOUND - True if libnl found. 0016 0017 if(NL_LIBRARIES AND NL_INCLUDE_DIRS) 0018 # in cache already 0019 SET(NL_FOUND TRUE) 0020 else() 0021 SET( SEARCHPATHS 0022 /opt/local 0023 /sw 0024 /usr 0025 /usr/local 0026 ) 0027 0028 find_package(PkgConfig) 0029 pkg_check_modules(NL3 libnl-3.0 libnl-route-3.0) 0030 if(NOT NL3_FOUND) 0031 pkg_search_module(NL2 libnl-2.0) 0032 endif() 0033 0034 # Try to find NL 2.0, 3.0 or 3.1 (/usr/include/netlink/version.h) or 0035 # NL >= 3.2 (/usr/include/libnl3/netlink/version.h) 0036 find_path(NL3_INCLUDE_DIR 0037 PATH_SUFFIXES 0038 include/libnl3 0039 include 0040 NAMES 0041 netlink/version.h 0042 HINTS 0043 "${NL3_libnl-3.0_INCLUDEDIR}" 0044 "${NL2_INCLUDEDIR}" 0045 PATHS 0046 $(SEARCHPATHS) 0047 ) 0048 # NL version >= 2 0049 if(NL3_INCLUDE_DIR) 0050 find_library(NL3_LIBRARY 0051 NAMES 0052 nl-3 nl 0053 PATH_SUFFIXES 0054 lib64 lib 0055 HINTS 0056 "${NL3_libnl-3.0_LIBDIR}" 0057 "${NL2_LIBDIR}" 0058 PATHS 0059 $(SEARCHPATHS) 0060 ) 0061 find_library(NLROUTE_LIBRARY 0062 NAMES 0063 nl-route-3 nl-route 0064 PATH_SUFFIXES 0065 lib64 lib 0066 HINTS 0067 "${NL3_libnl-route-3.0_LIBDIR}" 0068 "${NL2_LIBDIR}" 0069 PATHS 0070 $(SEARCHPATHS) 0071 ) 0072 # 0073 # If we don't have all of those libraries, we can't use libnl. 0074 # 0075 if(NL3_LIBRARY AND NLROUTE_LIBRARY) 0076 set(NL_LIBRARY ${NL3_LIBRARY}) 0077 if(NL3_INCLUDE_DIR) 0078 # NL2 and NL3 are similar and just affect how the version is reported in 0079 # the --version output. In cast of doubt, assume NL3 since a library 0080 # without version number could be any of 2.0, 3.0 or 3.1. 0081 if(NOT NL3_FOUND AND NL2_FOUND) 0082 set(HAVE_LIBNL2 1) 0083 else() 0084 set(HAVE_LIBNL3 1) 0085 endif() 0086 endif() 0087 endif() 0088 set(NL_INCLUDE_DIR ${NL3_INCLUDE_DIR}) 0089 endif() 0090 0091 # libnl-2 and libnl-3 not found, try NL version 1 0092 if(NOT (NL_LIBRARY AND NL_INCLUDE_DIR)) 0093 pkg_search_module(NL1 libnl-1) 0094 find_path(NL1_INCLUDE_DIR 0095 NAMES 0096 netlink/netlink.h 0097 HINTS 0098 "${NL1_INCLUDEDIR}" 0099 PATHS 0100 $(SEARCHPATHS) 0101 ) 0102 find_library(NL1_LIBRARY 0103 NAMES 0104 nl 0105 PATH_SUFFIXES 0106 lib64 lib 0107 HINTS 0108 "${NL1_LIBDIR}" 0109 PATHS 0110 $(SEARCHPATHS) 0111 ) 0112 set(NL_LIBRARY ${NL1_LIBRARY}) 0113 set(NL_INCLUDE_DIR ${NL1_INCLUDE_DIR}) 0114 if(NL1_LIBRARY AND NL1_INCLUDE_DIR) 0115 set(HAVE_LIBNL1 1) 0116 endif() 0117 endif() 0118 endif() 0119 # MESSAGE(STATUS "LIB Found: ${NL_LIBRARY}, Suffix: ${NLSUFFIX}\n 1:${HAVE_LIBNL1}, 2:${HAVE_LIBNL2}, 3:${HAVE_LIBNL3}.") 0120 0121 # handle the QUIETLY and REQUIRED arguments and set NL_FOUND to TRUE if 0122 # all listed variables are TRUE 0123 INCLUDE(FindPackageHandleStandardArgs) 0124 FIND_PACKAGE_HANDLE_STANDARD_ARGS(NL DEFAULT_MSG NL_LIBRARY NL_INCLUDE_DIR) 0125 0126 IF(NL_FOUND) 0127 set(NL_LIBRARIES ${NL_LIBRARY} ${NLROUTE_LIBRARY}) 0128 set(NL_INCLUDE_DIRS ${NL_INCLUDE_DIR}) 0129 set(HAVE_LIBNL 1) 0130 else() 0131 set(NL_LIBRARIES ) 0132 set(NL_INCLUDE_DIRS) 0133 endif() 0134 0135 MARK_AS_ADVANCED( NL_LIBRARIES NL_INCLUDE_DIRS )