diff --git a/cmake/FindPCAP.cmake b/cmake/FindPCAP.cmake index c3250046f..0d5ab6c62 100644 --- a/cmake/FindPCAP.cmake +++ b/cmake/FindPCAP.cmake @@ -32,18 +32,20 @@ find_path(PCAP_INCLUDE_DIR # set(LIB_PATH_SUFFIXES x86) # endif () -# find_library(PCAP_LIBRARY -# NAMES -# pcap pcap_static libpcap libpcap_static -# HINTS -# ENV PCAP_DIR -# PATH_SUFFIXES -# ${LIB_PATH_SUFFIXES} -# PATHS -# ${PCAP_PATH} -# ) -# ## message(STATUS "LIB_PATH_SUFFIXES ${LIB_PATH_SUFFIXES}") -# ## message(STATUS "PCAP_LIBRARY is ${PCAP_LIBRARY}") +if (NEED_PCAP_LIBRARY) + find_library(PCAP_LIBRARY + NAMES + pcap pcap_static libpcap libpcap_static + HINTS + ENV PCAP_DIR + PATH_SUFFIXES + ${LIB_PATH_SUFFIXES} + PATHS + ${PCAP_PATH} + ) + message(STATUS "LIB_PATH_SUFFIXES ${LIB_PATH_SUFFIXES}") + message(STATUS "PCAP_LIBRARY is ${PCAP_LIBRARY}") +endif() # if (WIN32 AND PCAP_LIBRARY) # ## Only worry about the packet library on Windows. @@ -62,15 +64,25 @@ find_path(PCAP_INCLUDE_DIR # endif (WIN32 AND PCAP_LIBRARY) # ## message(STATUS "PACKET_LIBRARY is ${PACKET_LIBRARY}") -# set(PCAP_LIBRARIES ${PCAP_LIBRARY} ${PACKET_LIBRARY}) +if (NEED_PCAP_LIBRARY) + set(PCAP_LIBRARIES ${PCAP_LIBRARY} ${PACKET_LIBRARY}) +endif() set(PCAP_INCLUDE_DIRS ${PCAP_INCLUDE_DIR}) unset(PCAP_LIBRARY) unset(PCAP_INCLUDE_DIR) include(FindPackageHandleStandardArgs) +if (NEED_PCAP_LIBRARY) +find_package_handle_standard_args( + PCAP + REQUIRED_VARS + PCAP_LIBRARIES + PCAP_INCLUDE_DIRS +) +else() find_package_handle_standard_args( PCAP REQUIRED_VARS - ## PCAP_LIBRARIES PCAP_INCLUDE_DIRS ) +endif() diff --git a/cmake/dep-link.cmake b/cmake/dep-link.cmake index 90c7707e0..325fa31af 100644 --- a/cmake/dep-link.cmake +++ b/cmake/dep-link.cmake @@ -308,6 +308,10 @@ if (WITH_NETWORK) endforeach() target_include_directories(simh_network INTERFACE "${PCAP_INCLUDE_DIRS}") + if (NEED_PCAP_LIBRARY) + target_link_directories(simh_network INTERFACE "${PCAP_LIBRARY_DIRS}") + target_link_libraries(simh_network INTERFACE "${PCAP_LIBRARIES}") + endif () target_compile_definitions(simh_network INTERFACE HAVE_PCAP_NETWORK) endif () endif () diff --git a/cmake/platform-quirks.cmake b/cmake/platform-quirks.cmake index 2113fec9b..bd9148247 100644 --- a/cmake/platform-quirks.cmake +++ b/cmake/platform-quirks.cmake @@ -264,3 +264,8 @@ if (CMAKE_HOST_APPLE) set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64") endif () endif() + +set(NEED_PCAP_LIBRARY FALSE) +if (${CMAKE_HOST_SYSTEM_NAME} MATCHES "FreeBSD") + set(NEED_PCAP_LIBRARY TRUE) +endif()