From 66bb52e7f0c8bf69bbf33d233a095253efe4923d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alonso=20C=C3=A1rdenas?= <11150989+alonsobsd@users.noreply.github.com> Date: Wed, 16 Jul 2025 07:48:50 -0700 Subject: [PATCH] Fixed issues on FreeBSD with CMake build for BSC and IPv6 datalinks. (#1046) --- CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- ports/bsd/bip6.c | 2 +- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 45322b29..f4553482 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -847,10 +847,40 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") target_sources(${PROJECT_NAME} PRIVATE ports/bsd/bacport.h - ports/bsd/bip-init.c + $<$:ports/bsd/bip-init.c> + $<$:ports/bsd/bip6.c> + $<$:ports/bsd/rs485.c> + $<$:ports/bsd/rs485.h> + $<$:ports/bsd/dlmstp.c> ports/bsd/datetime-init.c ports/bsd/mstimer-init.c + $<$:ports/bsd/bsc-event.c> + $<$:ports/bsd/websocket-cli.c> + $<$:ports/bsd/websocket-srv.c> + $<$:ports/bsd/websocket-global.c> ports/bsd/stdbool.h) + + if(BACDL_ETHERNET) + FIND_PATH(PCAP_INCLUDE pcap.h) + if(NOT PCAP_INCLUDE) + message(WARNING "BACNET: pcap.h header file not found") + else() + message(STATUS "BACNET: pcap Include:...................\"${PCAP_INCLUDE}\"") + endif() + FIND_LIBRARY(PCAP_LIBRARIES NAMES pcap) + if(NOT PCAP_LIBRARIES) + message(WARNING "BACNET: libpcap not found") + else() + message(STATUS "BACNET: pcap Lib:.......................\"${PCAP_LIBRARIES}\"") + endif() + if(PCAP_INCLUDE AND PCAP_LIBRARIES) + include_directories(${PCAP_INCLUDE}) + link_libraries(${PCAP_LIBRARIES}) + target_sources(${PROJECT_NAME} PRIVATE + ports/bsd/ethernet.c + ) + endif() + endif() endif() target_include_directories(${PROJECT_NAME} PUBLIC diff --git a/ports/bsd/bip6.c b/ports/bsd/bip6.c index 0ea53a51..7e18ce51 100644 --- a/ports/bsd/bip6.c +++ b/ports/bsd/bip6.c @@ -22,7 +22,7 @@ #endif #include "bacport.h" -#if defined(__APPLE__) || defined(__darwin__) +#if defined(__APPLE__) || defined(__darwin__) || defined(__FreeBSD__) /* OSX seems not to define these. */ #ifndef s6_addr16 #define s6_addr16 __u6_addr.__u6_addr16