blob: d9ac80e9825f59fa5e1060c963b5e22d583a5784 [file] [log] [blame]
From 1799b24aa397e98f7c894d17b37c087f1ae29d95 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Mon, 22 Apr 2019 18:40:25 +0200
Subject: [PATCH] FindPCAP: use pkg-config to find pcap dependencies
On UNIX, when statically built, pcap can depends on other libraries such
as -lnl-3. Add a call to pkg-config to find them and append them to
PCAP_LIBRARIES (and so to CMAKE_REQUIRED_LIBRARIES) otherwise all
check_function_exists calls will fail
Change-Id: I98361c05553738d015310fae76c17dfc08e131ff
Ping-Bug: 15713
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Reviewed-on: https://code.wireshark.org/review/32946
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Guy Harris <guy@alum.mit.edu>
[Retrieved from:
https://github.com/wireshark/wireshark/commit/1799b24aa397e98f7c894d17b37c087f1ae29d95]
---
cmake/modules/FindPCAP.cmake | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/cmake/modules/FindPCAP.cmake b/cmake/modules/FindPCAP.cmake
index dfd80415f6..6fe2d0f4dc 100644
--- a/cmake/modules/FindPCAP.cmake
+++ b/cmake/modules/FindPCAP.cmake
@@ -38,6 +38,16 @@ find_package_handle_standard_args( PCAP DEFAULT_MSG PCAP_LIBRARY PCAP_INCLUDE_DI
if( PCAP_FOUND )
set( PCAP_INCLUDE_DIRS ${PCAP_INCLUDE_DIR} )
set( PCAP_LIBRARIES ${PCAP_LIBRARY} )
+
+ # Include transitive dependencies for static linking.
+ # This requires:
+ # 1) a system with pkg-config installed
+ # 2) libpcap >= 1.9.0 with its .pc files installed
+ if( UNIX AND CMAKE_FIND_LIBRARY_SUFFIXES STREQUAL ".a" )
+ find_package( PkgConfig )
+ pkg_search_module( PC_LIBPCAP libpcap )
+ list( APPEND PCAP_LIBRARIES ${PC_LIBPCAP_LIBRARIES} )
+ endif()
else()
set( PCAP_INCLUDE_DIRS )
set( PCAP_LIBRARIES )