if(NOT CONFIG_GATEWAY_BACNET_BRIDGE_SUPPORTED) idf_component_register( INCLUDE_DIRS "include" REQUIRES dali_cpp ) return() endif() set(BACNET_STACK_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../../bacnet-stack") set(BACNET_SRC_ROOT "${BACNET_STACK_ROOT}/src") set(BACNET_ESP32_PORT "${BACNET_STACK_ROOT}/ports/esp32/src") idf_build_get_property(IDF_PATH IDF_PATH) set(BACNET_CORE_SRCS "${BACNET_SRC_ROOT}/bacnet/abort.c" "${BACNET_SRC_ROOT}/bacnet/bacaddr.c" "${BACNET_SRC_ROOT}/bacnet/bacapp.c" "${BACNET_SRC_ROOT}/bacnet/bacdcode.c" "${BACNET_SRC_ROOT}/bacnet/bacdest.c" "${BACNET_SRC_ROOT}/bacnet/bacdevobjpropref.c" "${BACNET_SRC_ROOT}/bacnet/bacerror.c" "${BACNET_SRC_ROOT}/bacnet/bacint.c" "${BACNET_SRC_ROOT}/bacnet/bacprop.c" "${BACNET_SRC_ROOT}/bacnet/bacpropstates.c" "${BACNET_SRC_ROOT}/bacnet/bacreal.c" "${BACNET_SRC_ROOT}/bacnet/bacstr.c" "${BACNET_SRC_ROOT}/bacnet/bactext.c" "${BACNET_SRC_ROOT}/bacnet/bactimevalue.c" "${BACNET_SRC_ROOT}/bacnet/calendar_entry.c" "${BACNET_SRC_ROOT}/bacnet/cov.c" "${BACNET_SRC_ROOT}/bacnet/datetime.c" "${BACNET_SRC_ROOT}/bacnet/dcc.c" "${BACNET_SRC_ROOT}/bacnet/iam.c" "${BACNET_SRC_ROOT}/bacnet/ihave.c" "${BACNET_SRC_ROOT}/bacnet/list_element.c" "${BACNET_SRC_ROOT}/bacnet/memcopy.c" "${BACNET_SRC_ROOT}/bacnet/npdu.c" "${BACNET_SRC_ROOT}/bacnet/proplist.c" "${BACNET_SRC_ROOT}/bacnet/reject.c" "${BACNET_SRC_ROOT}/bacnet/rp.c" "${BACNET_SRC_ROOT}/bacnet/rpm.c" "${BACNET_SRC_ROOT}/bacnet/timestamp.c" "${BACNET_SRC_ROOT}/bacnet/whohas.c" "${BACNET_SRC_ROOT}/bacnet/whois.c" "${BACNET_SRC_ROOT}/bacnet/wp.c" ) set(BACNET_BASIC_SRCS "${BACNET_SRC_ROOT}/bacnet/basic/binding/address.c" "${BACNET_SRC_ROOT}/bacnet/basic/npdu/h_npdu.c" "${BACNET_SRC_ROOT}/bacnet/basic/npdu/s_router.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/ai.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/ao.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/av.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/bi.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/bo.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/bv.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/device.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/ms-input.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/mso.c" "${BACNET_SRC_ROOT}/bacnet/basic/object/msv.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_apdu.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_cov.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_dcc.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_noserv.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_rp.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_rpm.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_whohas.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_whois.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/h_wp.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/s_abort.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/s_error.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/s_iam.c" "${BACNET_SRC_ROOT}/bacnet/basic/service/s_ihave.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/bigend.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/days.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/datetime_mstimer.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/debug.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/dst.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/keylist.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/linear.c" "${BACNET_SRC_ROOT}/bacnet/basic/sys/mstimer.c" "${BACNET_SRC_ROOT}/bacnet/basic/tsm/tsm.c" ) set(BACNET_PORT_SRCS "${BACNET_ESP32_PORT}/bip.c" "${BACNET_ESP32_PORT}/mstimer_init.c" "${BACNET_ESP32_PORT}/bip_init.c" "${BACNET_ESP32_PORT}/bvlc.c" ) idf_component_register( SRCS "src/gateway_bacnet.cpp" "src/gateway_bacnet_stack_port.c" "src/bip_socket_lwip.cpp" ${BACNET_CORE_SRCS} ${BACNET_BASIC_SRCS} ${BACNET_PORT_SRCS} INCLUDE_DIRS "include" "${BACNET_ESP32_PORT}" "${BACNET_SRC_ROOT}" PRIV_INCLUDE_DIRS "${IDF_PATH}/components/esp_netif/include" REQUIRES dali_cpp esp_netif freertos PRIV_REQUIRES log lwip ) target_compile_definitions(${COMPONENT_LIB} PRIVATE BACDL_BIP=1 BACAPP_MINIMAL=1 BACNET_GATEWAY_EXTERNAL_OBJECT_TABLE=1 BACNET_PROPERTY_LISTS=1 BACNET_PROTOCOL_REVISION=16 BACNET_STACK_DEPRECATED_DISABLE=1 BBMD_ENABLED=0 BBMD_CLIENT_ENABLED=0 MAX_ADDRESS_CACHE=8 MAX_APDU=480 MAX_TSM_TRANSACTIONS=8 PRINT_ENABLED=0 ) target_compile_options(${COMPONENT_LIB} PRIVATE $<$:-Wno-missing-field-initializers> $<$:-Wno-old-style-declaration> $<$:-Wno-unused-function> ) set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17)