set(OPENKNX_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../knx") set(TPUART_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../tpuart") if(NOT EXISTS "${OPENKNX_ROOT}/src/knx/platform.h") message(FATAL_ERROR "OpenKNX submodule is missing at ${OPENKNX_ROOT}") endif() if(NOT EXISTS "${TPUART_ROOT}/src/TPUart/DataLinkLayer.h") message(FATAL_ERROR "TPUart submodule is missing at ${TPUART_ROOT}") endif() file(GLOB OPENKNX_SRCS "${OPENKNX_ROOT}/src/knx/*.cpp" ) if(CONFIG_GATEWAY_KNX_DATA_SECURE_SUPPORTED) list(APPEND OPENKNX_SRCS "${OPENKNX_ROOT}/src/knx/aes.c" ) endif() set(TPUART_SRCS "${TPUART_ROOT}/src/TPUart/DataLinkLayer.cpp" "${TPUART_ROOT}/src/TPUart/Receiver.cpp" "${TPUART_ROOT}/src/TPUart/RepetitionFilter.cpp" "${TPUART_ROOT}/src/TPUart/RingBuffer.cpp" "${TPUART_ROOT}/src/TPUart/SearchBuffer.cpp" "${TPUART_ROOT}/src/TPUart/Statistics.cpp" "${TPUART_ROOT}/src/TPUart/SystemState.cpp" "${TPUART_ROOT}/src/TPUart/Transmitter.cpp" "${TPUART_ROOT}/src/TPUart.cpp" ) idf_component_register( SRCS "src/arduino_compat.cpp" "src/esp_idf_platform.cpp" "src/ets_device_runtime.cpp" "src/ets_memory_loader.cpp" "src/security_storage.cpp" "src/tpuart_uart_interface.cpp" ${OPENKNX_SRCS} ${TPUART_SRCS} INCLUDE_DIRS "include" "${OPENKNX_ROOT}/src" "${TPUART_ROOT}/src" REQUIRES esp_driver_gpio esp_driver_uart esp_netif esp_system esp_timer esp_wifi freertos log lwip mbedtls nvs_flash ) target_compile_definitions(${COMPONENT_LIB} PUBLIC MASK_VERSION=0x07B0 KNX_FLASH_SIZE=4096 KNX_NO_AUTOMATIC_GLOBAL_INSTANCE KNX_NO_SPI USE_CEMI_SERVER ) if(CONFIG_GATEWAY_KNX_DATA_SECURE_SUPPORTED) target_compile_definitions(${COMPONENT_LIB} PUBLIC USE_DATASECURE) endif() target_compile_options(${COMPONENT_LIB} PRIVATE -Wno-unused-parameter ) set_property(TARGET ${COMPONENT_LIB} PROPERTY CXX_STANDARD 17)