phase 2 serial

This commit is contained in:
flower_linux
2026-06-12 18:34:49 +08:00
parent 0cf0713dc5
commit 628ccf1409
78 changed files with 2571 additions and 345 deletions

View File

@@ -73,6 +73,45 @@ else()
set(SOFTBUS_HAS_OPCUA OFF)
endif()
# libmodbus (edge RTU/TCP): system pkg-config first, else third_party vendor
set(SOFTBUS_HAS_LIBMODBUS OFF)
set(SOFTBUS_LIBMODBUS_VENDOR OFF)
option(SOFTBUS_FORCE_VENDOR_LIBMODBUS
"Always build libmodbus from third_party/libmodbus" OFF)
if(NOT SOFTBUS_FORCE_VENDOR_LIBMODBUS)
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(LIBMODBUS QUIET libmodbus)
endif()
endif()
if(LIBMODBUS_FOUND AND NOT SOFTBUS_FORCE_VENDOR_LIBMODBUS)
set(SOFTBUS_HAS_LIBMODBUS ON)
add_library(libmodbus_iface INTERFACE)
target_include_directories(libmodbus_iface INTERFACE ${LIBMODBUS_INCLUDE_DIRS})
target_link_libraries(libmodbus_iface INTERFACE ${LIBMODBUS_LIBRARIES})
message(STATUS "libmodbus: using system package (pkg-config)")
else()
add_subdirectory("${CMAKE_CURRENT_LIST_DIR}/libmodbus")
if(NOT SOFTBUS_HAS_LIBMODBUS)
message(STATUS "libmodbus not available; softbus_edge uses simulated Modbus I/O")
endif()
endif()
function(softbus_apply_libmodbus target)
if(SOFTBUS_HAS_LIBMODBUS)
target_compile_definitions(${target} PRIVATE SOFTBUS_HAS_LIBMODBUS=1)
target_link_libraries(${target} PRIVATE libmodbus_iface)
if(SOFTBUS_LIBMODBUS_VENDOR)
target_compile_definitions(${target} PRIVATE SOFTBUS_LIBMODBUS_VENDOR=1)
endif()
else()
target_compile_definitions(${target} PRIVATE SOFTBUS_HAS_LIBMODBUS=0)
endif()
endfunction()
function(softbus_apply_open62541 target)
if(SOFTBUS_HAS_OPCUA)
target_compile_definitions(${target} PRIVATE SOFTBUS_HAS_OPCUA=1)