phase 2 serial
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user