diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..cc61de9b8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,26 @@ +# Changelog for esp_matter component registry + +## [1.4.0](https://components.espressif.com/components/espressif/esp_matter/versions/1.4.0) + +#### Features + +- Component based on Matter 1.4 +- esp-matter commit: 30af618a6e962623a0098ad6a33b468f33dc49c7 +- connectedhomeip commit: cd07c4f5c3988258e6eba9d34d3dc0767d95e5a3 + +## [1.3.1](https://components.espressif.com/components/espressif/esp_matter/versions/1.3.1) + +#### Features + +- Work with IDF component management (version >= 2.0) without hash problem +- External platform path setting: support both absolute path or relative path to top-level CMakeLists +- More default compile options for the source files +- Could enable CONFIG_CHIP_OTA_IMAGE_BUILD to generate ota.bin file with IDF component management (version >= 2.0) +- esp-matter commit: 5a9bc09a640d5cfd4c6b137f7e3b13ce5fa9cca4 +- connectedhomeip commit: 735b69f73e386cb675242371afd0b237a8a78982 + +## [1.3.0](https://components.espressif.com/components/espressif/esp_matter/versions/1.3.0) + +#### Features + +- Component `esp_matter` based on branch release/v1.3 [commit](https://github.com/espressif/esp-matter/commit/d76d4857d768b32eb215e825448d938018e5691a), commit date Jun 11, 2024. diff --git a/CMakeLists.txt b/CMakeLists.txt index 37e48af0f..ea5c4d2ca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,6 @@ get_filename_component(MATTER_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/connectedhomeip/connectedhomeip/ REALPATH) get_filename_component(CHIP_ROOT ${CMAKE_CURRENT_LIST_DIR}/connectedhomeip/connectedhomeip/ REALPATH) -include(${CMAKE_CURRENT_LIST_DIR}/connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake) set(ESP_COMPONENTS_PATH ${CMAKE_CURRENT_SOURCE_DIR}/components) @@ -27,6 +26,8 @@ endfunction() set(SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/access" "${MATTER_SDK_PATH}/src/access/examples" "${MATTER_SDK_PATH}/src/app" + "${MATTER_SDK_PATH}/src/app/data-model" + "${MATTER_SDK_PATH}/src/app/data-model-provider" "${MATTER_SDK_PATH}/src/app/MessageDef" "${MATTER_SDK_PATH}/src/app/reporting" "${MATTER_SDK_PATH}/src/app/server" @@ -54,6 +55,7 @@ set(SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/access" "${MATTER_SDK_PATH}/src/protocols" "${MATTER_SDK_PATH}/src/protocols/bdx" "${MATTER_SDK_PATH}/src/protocols/echo" + "${MATTER_SDK_PATH}/src/protocols/interaction_model" "${MATTER_SDK_PATH}/src/protocols/secure_channel" "${MATTER_SDK_PATH}/src/protocols/user_directed_commissioning" "${MATTER_SDK_PATH}/src/setup_payload" @@ -65,20 +67,29 @@ set(SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/access" "${MATTER_SDK_PATH}/zzz_generated/app-common/app-common/zap-generated") set(INCLUDE_DIRS_LIST "${MATTER_SDK_PATH}/src" + "${MATTER_SDK_PATH}/src/app/ember_coupling" # use for ember "${MATTER_SDK_PATH}/src/include" "${MATTER_SDK_PATH}/src/lib" + "${MATTER_SDK_PATH}/src/lib/dnssd" "${MATTER_SDK_PATH}/src/platform/OpenThread" + "${MATTER_SDK_PATH}/third_party/jsoncpp/repo/include" "${MATTER_SDK_PATH}/third_party/nlfaultinjection/include" "${MATTER_SDK_PATH}/third_party/nlassert/repo/include" "${MATTER_SDK_PATH}/third_party/nlio/repo/include" "${MATTER_SDK_PATH}/zzz_generated/app-common") -set(EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/ExamplePersistentStorage.cpp" +set(EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/access/AccessRestrictionProvider.cpp" + "${MATTER_SDK_PATH}/src/app/AttributePathExpandIterator-Checked.cpp" + "${MATTER_SDK_PATH}/src/app/AttributePathExpandIterator-DataModel.cpp" + "${MATTER_SDK_PATH}/src/app/data-model-provider/StringBuilderAdapters.cpp" + "${MATTER_SDK_PATH}/src/controller/ExamplePersistentStorage.cpp" "${MATTER_SDK_PATH}/src/credentials/attestation_verifier/FileAttestationTrustStore.cpp" + "${MATTER_SDK_PATH}/src/credentials/attestation_verifier/TestDACRevocationDelegateImpl.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/CHIPCert_error_test_vectors.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/CHIPCert_test_vectors.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/CHIPCert_unit_test_vectors.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/FuzzChipCert.cpp" + "${MATTER_SDK_PATH}/src/credentials/tests/FuzzChipCertPW.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/TestCertificationDeclaration.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/TestChipCert.cpp" "${MATTER_SDK_PATH}/src/credentials/tests/TestCommissionerDUTVectors.cpp" @@ -90,13 +101,18 @@ set(EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/ExamplePersistentStorag "${MATTER_SDK_PATH}/src/crypto/CHIPCryptoPALOpenSSL.cpp" "${MATTER_SDK_PATH}/src/crypto/CHIPCryptoPALPSA.cpp" "${MATTER_SDK_PATH}/src/crypto/PSAOperationalKeystore.cpp" + "${MATTER_SDK_PATH}/src/crypto/PSASpake2p.cpp" "${MATTER_SDK_PATH}/src/crypto/PSASessionKeystore.cpp" + "${MATTER_SDK_PATH}/src/inet/TCPEndPoint.cpp" + "${MATTER_SDK_PATH}/src/inet/TCPEndPointImplLwIP.cpp" "${MATTER_SDK_PATH}/src/inet/TCPEndPointImplOpenThread.cpp" "${MATTER_SDK_PATH}/src/inet/TCPEndPointImplSockets.cpp" "${MATTER_SDK_PATH}/src/inet/UDPEndPointImplNetworkFramework.cpp" "${MATTER_SDK_PATH}/src/inet/UDPEndPointImplOpenThread.cpp" "${MATTER_SDK_PATH}/src/inet/UDPEndPointImplSockets.cpp" "${MATTER_SDK_PATH}/src/lib/address_resolve/tool.cpp" + "${MATTER_SDK_PATH}/src/lib/core/StringBuilderAdapters.cpp" + "${MATTER_SDK_PATH}/src/lib/core/TLVVectorWriter.cpp" "${MATTER_SDK_PATH}/src/lib/dnssd/Advertiser_ImplNone.cpp" "${MATTER_SDK_PATH}/src/lib/dnssd/Resolver_ImplNone.cpp" "${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/AddressPolicy_LibNlImpl.cpp" @@ -109,19 +125,30 @@ set(EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/ExamplePersistentStorag "${MATTER_SDK_PATH}/src/lib/shell/commands/NFC.cpp" "${MATTER_SDK_PATH}/src/platform/DeviceSafeQueue.cpp" "${MATTER_SDK_PATH}/src/platform/SyscallStubs.cpp" + "${MATTER_SDK_PATH}/src/platform/OpenThread/DnssdImpl.cpp" "${MATTER_SDK_PATH}/src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.cpp" "${MATTER_SDK_PATH}/src/system/SystemLayerImplSelect.cpp" + "${MATTER_SDK_PATH}/src/transport/raw/TCP.cpp" + "${MATTER_SDK_PATH}/src/transport/raw/WiFiPAF.cpp" "${MATTER_SDK_PATH}/src/transport/TraceMessage.cpp") list(APPEND INCLUDE_DIRS_LIST "${CMAKE_CURRENT_BINARY_DIR}") -file(GLOB CLUSTER_DIR_LIST true ${MATTER_SDK_PATH}/src/app/clusters/*) -foreach(CLUSTER_DIR ${CLUSTER_DIR_LIST}) - file(GLOB_RECURSE C_CPP_FILES "${CLUSTER_DIR}/*.c" "${CLUSTER_DIR}/*.cpp") - if (C_CPP_FILES) - list(APPEND SRC_DIRS_LIST "${CLUSTER_DIR}") - endif() -endforeach() +if (CONFIG_ESP_MATTER_ENABLE_DATA_MODEL) + file(GLOB CLUSTER_DIR_LIST true ${MATTER_SDK_PATH}/src/app/clusters/*) + foreach(CLUSTER_DIR ${CLUSTER_DIR_LIST}) + file(GLOB_RECURSE C_CPP_FILES "${CLUSTER_DIR}/*.c" "${CLUSTER_DIR}/*.cpp") + if (C_CPP_FILES) + list(APPEND SRC_DIRS_LIST "${CLUSTER_DIR}") + endif() + endforeach() + list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter/zap_common/app") + list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter/zap_common") +else() + # For examples that don't use ESP-Matter Data Model(such as zap light example) + # For those examples, they should include the clusters srcs in their main component + list(APPEND EXCLUDE_SRCS_LIST "esp_matter_delegate_callbacks.cpp") +endif() list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter" "${ESP_COMPONENTS_PATH}/esp_matter/private" @@ -136,31 +163,36 @@ list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter" "${ESP_COMPONENTS_PATH}/esp_matter_bridge" "${ESP_COMPONENTS_PATH}/esp_matter_console") -if (CONFIG_ESP_MATTER_ENABLE_DATA_MODEL) - list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter/zap_common/app") - list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter/zap_common") -endif() - set(PRIV_INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter/private") if (CONFIG_ESP_MATTER_CONTROLLER_ENABLE) - list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller" - "${ESP_COMPONENTS_PATH}/esp_matter_controller/logger/zap-generated") - list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller" - "${ESP_COMPONENTS_PATH}/esp_matter_controller/logger") + list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/core" + "${ESP_COMPONENTS_PATH}/esp_matter_controller/commands" + "${MATTER_SDK_PATH}/zzz_generated/chip-tool/zap-generated/cluster/logging") + list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/core" + "${ESP_COMPONENTS_PATH}/esp_matter_controller/commands" + "${MATTER_SDK_PATH}/zzz_generated/chip-tool" + "${MATTER_SDK_PATH}/examples/chip-tool/") - if (CONFIG_ESP_MATTER_CONTROLLER_CUSTOM_CLUSTER_ENABLE) - list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/controller_custom_cluster") - list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/controller_custom_cluster") + if (CONFIG_ESP_MATTER_ENABLE_MATTER_SERVER) + list(APPEND EXCLUDE_SRCS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/core/esp_matter_controller_client.cpp" + "${ESP_COMPONENTS_PATH}/esp_matter_controller/core/esp_matter_controller_credentials_issuer.cpp" + "${ESP_COMPONENTS_PATH}/esp_matter_controller/core/esp_matter_controller_group_settings.cpp") endif() - if (NOT CONFIG_ESP_MATTER_COMMISSIONER_ENABLE) - list(APPEND EXCLUDE_SRCS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/esp_matter_commissioner.cpp" - "${ESP_COMPONENTS_PATH}/esp_matter_controller/esp_matter_controller_pairing_command.cpp" - "${ESP_COMPONENTS_PATH}/esp_matter_controller/esp_matter_attestation_trust_store.cpp" - "${ESP_COMPONENTS_PATH}/esp_matter_controller/esp_matter_controller_group_settings.cpp") + if (CONFIG_ESP_MATTER_COMMISSIONER_ENABLE) + list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/attestation_store") + list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/attestation_store") + else() + list(APPEND EXCLUDE_SRCS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_controller/commands/esp_matter_controller_pairing_command.cpp") endif() endif() +if (CONFIG_ESP_MATTER_OTA_PROVIDER_ENABLED) + list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_ota_provider/src") + list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_ota_provider/include") + list(APPEND PRIV_INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_ota_provider/private_include") +endif() + idf_build_get_property(rainmaker_enabled RAINMAKER_ENABLED) if (${rainmaker_enabled}) list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_rainmaker") @@ -168,14 +200,6 @@ if (${rainmaker_enabled}) list(APPEND REQUIRE_COMPONENTS esp_rainmaker) endif() -if (CONFIG_OPENTHREAD_BORDER_ROUTER) - list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_thread_br") - list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_thread_br") - if ((NOT CONFIG_ENABLE_CHIP_SHELL) OR (NOT CONFIG_OPENTHREAD_CLI)) - list(APPEND EXCLUDE_SRCS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_thread_br/esp_matter_thread_br_console.cpp") - endif() -endif() - # ESP-IDF lets user set software version string by two ways: # 1. Project's CMakeLists.txt file and 2. Config option # It depends on CONFIG_APP_PROJECT_VER_FROM_CONFIG option @@ -226,10 +250,11 @@ endif() if (CONFIG_ENABLE_CHIP_SHELL) list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/lib/shell") - list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/lib/shell/commands") + list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/lib/shell/commands") set(ESP_SHELL_FILES "${MATTER_SDK_PATH}/src/lib/shell/MainLoopESP32.cpp" "${MATTER_SDK_PATH}/src/lib/shell/streamer_esp32.cpp" "${MATTER_SDK_PATH}/src/lib/shell/Engine.cpp" + "${MATTER_SDK_PATH}/src/lib/shell/CommandSet.cpp" "${MATTER_SDK_PATH}/src/lib/shell/streamer.cpp") collect_exclude_files("${MATTER_SDK_PATH}/src/lib/shell" "${ESP_SHELL_FILES}" SHELL_EXCLUDE_FILES) list(APPEND EXCLUDE_SRCS_LIST "${SHELL_EXCLUDE_FILES}") @@ -249,8 +274,7 @@ if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP)) endif() if (NOT CONFIG_ENABLE_MATTER_OVER_THREAD) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/OpenThread/DnssdImpl.cpp" - "${MATTER_SDK_PATH}/src/platform/OpenThread/GenericNetworkCommissioningThreadDriver.cpp" + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/OpenThread/GenericNetworkCommissioningThreadDriver.cpp" "${MATTER_SDK_PATH}/src/platform/OpenThread/OpenThreadUtils.cpp" "${MATTER_SDK_PATH}/src/platform/OpenThread/OpenThreadDnssdImpl.cpp") endif() @@ -267,15 +291,42 @@ else() set(CHIP_PROJECT_CONFIG "") endif() -if (CONFIG_ENABLE_ESP_INSIGHTS_TRACE) +if (CONFIG_ENABLE_ESP_INSIGHTS_TRACE AND (NOT "${IDF_TARGET}" STREQUAL "esp32h2")) list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/tracing/esp32_trace") - list(APPEND INCLUDE_DIRS_LIST "${MATTER_SDK_PATH}/src/tracing/esp32_trace/include") + list(APPEND INCLUDE_DIRS_LIST "${MATTER_SDK_PATH}/src/tracing/esp32_trace/include" + "${MATTER_SDK_PATH}/src/tracing/esp32_trace") + if (NOT CONFIG_ENABLE_ESP_INSIGHTS_SYSTEM_STATS) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/tracing/esp32_trace/insights_sys_stats.cpp") + endif() +endif() + +if (NOT CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/app/SimpleSubscriptionResumptionStorage.cpp" + "${MATTER_SDK_PATH}/src/app/SubscriptionResumptionSessionEstablisher.cpp") +endif() + +if (NOT CONFIG_OPENTHREAD_BORDER_ROUTER) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/OpenThread/GenericThreadBorderRouterDelegate.cpp") +endif() + +if (NOT CONFIG_CHIP_DEVICE_ENABLE_DYNAMIC_SERVER) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/EmptyDataModelHandler.cpp") +endif() + +if (NOT CONFIG_ENABLE_OTA_REQUESTOR) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/lib/shell/commands/Ota.cpp") endif() if (CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM) # check the source file dir if external platform is enable - if ((EXISTS ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR}/external_platform.cmake)) - include(${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR}/external_platform.cmake) + if (IS_ABSOLUTE ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR}) + get_filename_component(EXTERNAL_PLATFORM_DIR ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} REALPATH) + else() + get_filename_component(EXTERNAL_PLATFORM_DIR ${CMAKE_SOURCE_DIR}/${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} REALPATH) + endif() + message("EXTERNAL_PLATFORM_DIR: ${EXTERNAL_PLATFORM_DIR}") + if ((EXISTS ${EXTERNAL_PLATFORM_DIR}/external_platform.cmake)) + include(${EXTERNAL_PLATFORM_DIR}/external_platform.cmake) list(APPEND SRC_DIRS_LIST ${EXPLANT_SRC_DIRS_LIST}) list(APPEND INCLUDE_DIRS_LIST ${EXPLANT_INCLUDE_DIRS_LIST}) list(APPEND EXCLUDE_SRCS_LIST ${EXPLANT_EXCLUDE_SRCS_LIST}) @@ -296,7 +347,7 @@ else() endif() if ((CONFIG_USE_MINIMAL_MDNS) OR ((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP))) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/WiFiDnssdImpl.cpp") + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32DnssdImpl.cpp") endif() if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP)) @@ -314,17 +365,15 @@ else() if ((CONFIG_BT_ENABLED) AND (CONFIG_ENABLE_CHIPOBLE)) if (CONFIG_BT_NIMBLE_ENABLED) list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/nimble") - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/bluedroid/BLEManagerImpl.cpp") - if(NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/bluedroid/ChipDeviceScanner.cpp") + if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/ChipDeviceScanner.cpp" + "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/misc.c" + "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/peer.c") endif() else() list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/bluedroid") - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/BLEManagerImpl.cpp") - if(NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/ChipDeviceScanner.cpp" - "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/misc.c" - "${MATTER_SDK_PATH}/src/platform/ESP32/nimble/peer.c") + if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER) + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/bluedroid/ChipDeviceScanner.cpp") endif() endif() endif() @@ -348,11 +397,13 @@ else() endif() if (NOT CONFIG_ENABLE_ESP32_DEVICE_INFO_PROVIDER) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32DeviceInfoProvider.cpp") + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32DeviceInfoProvider.cpp" + "${MATTER_SDK_PATH}/src/platform/ESP32/StaticESP32DeviceInfoProvider.cpp") endif() if (NOT CONFIG_SEC_CERT_DAC_PROVIDER) - list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32SecureCertDACProvider.cpp") + list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32SecureCertDataProvider.cpp" + "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32SecureCertDACProvider.cpp") endif() if (NOT CONFIG_USE_ESP32_ECDSA_PERIPHERAL) @@ -380,7 +431,8 @@ idf_component_register(SRC_DIRS ${SRC_DIRS_LIST} target_compile_options(${COMPONENT_LIB} PUBLIC "-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=" - "-DCHIP_CONFIG_SOFTWARE_VERSION_NUMBER=${chip_config_software_version_number}") + "-DCHIP_CONFIG_SOFTWARE_VERSION_NUMBER=${chip_config_software_version_number}" + "-DNDEBUG") if (CHIP_PROJECT_CONFIG) target_compile_options(${COMPONENT_LIB} PUBLIC @@ -388,9 +440,29 @@ if (CHIP_PROJECT_CONFIG) "-DSYSTEM_PROJECT_CONFIG_INCLUDE=${CHIP_PROJECT_CONFIG}") endif() -idf_build_set_property(COMPILE_OPTIONS "-Wno-error=uninitialized;-Wno-error=maybe-uninitialized;-Wno-format-nonliteral;-Wno-missing-field-initializers;" APPEND) -idf_build_set_property(COMPILE_OPTIONS "-Wno-error=array-bounds" APPEND) -idf_build_set_property(COMPILE_OPTIONS "-Wno-write-strings" APPEND) +if (CONFIG_ESP_MATTER_CONTROLLER_ENABLE) + target_compile_options(${COMPONENT_LIB} PRIVATE "-DCURRENT_TIME_NOT_IMPLEMENTED=1") +endif() + +# compile options from connectedhomeip/build/config/compiler except -Wconversion, -Wshadow, and -Wno-unknown-warning-option +target_compile_options(${COMPONENT_LIB} PRIVATE "-g2;-fno-common;-fno-unwind-tables;-fno-asynchronous-unwind-tables") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wstack-usage=8192;-Wunreachable-code;-Wvla") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wformat;-Wformat-nonliteral;-Wformat-security") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-deprecated-declarations;-Wno-unused") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-cast-function-type;-Wno-psabi;-Wno-maybe-uninitialized;-fno-strict-aliasing") +target_compile_options(${COMPONENT_LIB} PRIVATE $<$:-Wnon-virtual-dtor>) + +# link options from connectedhomeip/build/config/compiler +target_link_options(${COMPONENT_LIB} PRIVATE -Wl,-O2 -Wl,--gc-sections -Os -Werror -Wl,--fatal-warnings -fdiagnostics-color) + +# compile options from esp-matter/components/ +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-error=uninitialized;-Wno-error=maybe-uninitialized;-Wno-missing-field-initializers") +target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-error=array-bounds;-Wno-write-strings") + +# TODO: remove this when building connectedhomeip/src/controller/CHIPDeviceController.cpp with no format error +if (CONFIG_ENABLE_CHIP_CONTROLLER_BUILD) + target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-error=format") +endif() # For Xtensa chips, uint32_t was defined as 'unsigned' before v5.0, and after IDF v5.0 it is defined # as 'unsigned long', same as RISC-V. add this compile option to avoid format errors. @@ -404,10 +476,27 @@ if (CONFIG_DISABLE_READ_CLIENT) target_compile_options(${COMPONENT_LIB} PUBLIC "-DTIME_SYNC_ENABLE_TSC_FEATURE=0") endif() +if(CONFIG_DISABLE_IPV4) + if(CONFIG_LWIP_IPV4) + message(FATAL_ERROR "Please also disable config option CONFIG_LWIP_IPV4") + else() + target_compile_options(${COMPONENT_LIB} PRIVATE "-DCHIP_DEVICE_CONFIG_ENABLE_IPV4=false") + endif() +else() + target_compile_options(${COMPONENT_LIB} PRIVATE "-DCHIP_DEVICE_CONFIG_ENABLE_IPV4=true") +endif() + if (CONFIG_USE_MINIMAL_MDNS) target_compile_options(${COMPONENT_LIB} PUBLIC "-DCHIP_MINMDNS_DEFAULT_POLICY=1" "-DCHIP_MINMDNS_USE_EPHEMERAL_UNICAST_PORT=0" - "-DCHIP_MINMDNS_HIGH_VERBOSITY=0") + "-DCHIP_MINMDNS_HIGH_VERBOSITY=0" + "-DCHIP_DNSSD_DEFAULT_MINIMAL=true" + "-DCHIP_DNSSD_DEFAULT_NONE=false" + "-DCHIP_DNSSD_DEFAULT_PLATFORM=false") +else() + target_compile_options(${COMPONENT_LIB} PUBLIC "-DCHIP_DNSSD_DEFAULT_PLATFORM=true" + "-DCHIP_DNSSD_DEFAULT_NONE=false" + "-DCHIP_DNSSD_DEFAULT_MINIMAL=false") endif() if (NOT CMAKE_BUILD_EARLY_EXPANSION) @@ -432,15 +521,21 @@ target_include_directories(${COMPONENT_LIB} INTERFACE #Generate some include files include(${CMAKE_CURRENT_LIST_DIR}/generate-include-files.cmake) -idf_component_get_property(main_lib main COMPONENT_LIB) +if (NOT EXECUTABLE_COMPONENT_NAME) + set(EXECUTABLE_COMPONENT_NAME "main") +endif() +idf_component_get_property(main_lib ${EXECUTABLE_COMPONENT_NAME} COMPONENT_LIB) set(chip_libraries $) target_link_libraries(${COMPONENT_LIB} INTERFACE -Wl,--start-group ${chip_libraries} -Wl,--end-group) -# TODO: Build OTA image need a python package, leading a file change and distorying the hash of managed_components. +cmake_policy(GET CMP0007 policy_status) +# Set new CMP0007 policy to prevent cmake warning +cmake_policy(SET CMP0007 NEW) +include(${CMAKE_CURRENT_LIST_DIR}/connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake) # Build Matter OTA image -if (false AND CONFIG_CHIP_OTA_IMAGE_BUILD) +if (CONFIG_CHIP_OTA_IMAGE_BUILD) chip_ota_image(chip-ota-image INPUT_FILES ${BUILD_DIR}/${CMAKE_PROJECT_NAME}.bin OUTPUT_FILE ${BUILD_DIR}/${CMAKE_PROJECT_NAME}-ota.bin @@ -448,3 +543,4 @@ if (false AND CONFIG_CHIP_OTA_IMAGE_BUILD) # Adding dependecy as app target so that this runs after images are ready add_dependencies(chip-ota-image app) endif() +cmake_policy(SET CMP0007 ${policy_status}) diff --git a/Kconfig b/Kconfig index ff5947028..ca489232d 100644 --- a/Kconfig +++ b/Kconfig @@ -2,4 +2,5 @@ rsource "connectedhomeip/connectedhomeip/config/esp32/components/chip/Kconfig" rsource "components/esp_matter/Kconfig" rsource "components/esp_matter_bridge/Kconfig" rsource "components/esp_matter_console/Kconfig" -rsource "components/esp_matter_controller/Kconfig" \ No newline at end of file +rsource "components/esp_matter_controller/Kconfig" +rsource "components/esp_matter_ota_provider/Kconfig" \ No newline at end of file diff --git a/docs/en/developing.rst b/docs/en/developing.rst index aded9c7f4..26c9d71e4 100644 --- a/docs/en/developing.rst +++ b/docs/en/developing.rst @@ -201,7 +201,7 @@ To add the esp_matter component to your project, run: :: - idf.py add-dependency "espressif/esp_matter^0.0.2" + idf.py add-dependency "espressif/esp_matter^1.4.0" An example with esp_matter component is offered: @@ -209,8 +209,9 @@ An example with esp_matter component is offered: .. note:: - To use this component, the version of IDF component management should be 1.4.*. - Use ``compote version`` to show the version. Use ``pip install 'idf-component-manager~=1.4.0'`` to install. + To use this component, the version of IDF component management should be ``1.4.*`` or ``>= 2.0``. + Use ``compote version`` to show the version. Use ``pip install 'idf-component-manager~=1.4.0'`` + or ``pip install 'idf-component-manager~=2.0.0'`` to install. 2.2.3 Building Applications ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/examples/common/blemesh_platform/platform/ESP32_custom/external_platform.cmake b/examples/common/blemesh_platform/platform/ESP32_custom/external_platform.cmake index 65300d13a..a1317d24a 100644 --- a/examples/common/blemesh_platform/platform/ESP32_custom/external_platform.cmake +++ b/examples/common/blemesh_platform/platform/ESP32_custom/external_platform.cmake @@ -53,8 +53,8 @@ if (NOT CONFIG_ENABLE_ETHERNET_TELEMETRY) "${CMAKE_CURRENT_LIST_DIR}/NetworkCommissioningDriver_Ethernet.cpp") endif() -if (NOT CONFIG_ENABLE_MATTER_OVER_THREAD) - list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/OpenthreadLauncher.c" +if ((NOT CONFIG_OPENTHREAD_ENABLED) OR (NOT CONFIG_ENABLE_MATTER_OVER_THREAD)) + list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/OpenthreadLauncher.cpp" "${CMAKE_CURRENT_LIST_DIR}/ThreadStackManagerImpl.cpp") endif() @@ -78,3 +78,9 @@ endif() if (NOT CONFIG_USE_ESP32_ECDSA_PERIPHERAL) list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ESP32CHIPCryptoPAL.cpp") endif() + +if (EXISTS ${CMAKE_CURRENT_LIST_DIR}/generate-include-files.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/generate-include-files.cmake) +else() + message(FATAL_ERROR "There should be a generate-include-files.cmake file in CONFIG_CHIP_EXTERNAL_PLATFORM_DIR!") +endif() diff --git a/examples/common/blemesh_platform/platform/ESP32_custom/generate-include-files.cmake b/examples/common/blemesh_platform/platform/ESP32_custom/generate-include-files.cmake new file mode 100644 index 000000000..5041ee0e3 --- /dev/null +++ b/examples/common/blemesh_platform/platform/ESP32_custom/generate-include-files.cmake @@ -0,0 +1,86 @@ +if (CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM) +# Generating platform/CHIPDeviceBuildConfig.h +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/platform/CHIPDeviceBuildConfig.h +"#pragma once\n +#include \n + +#if defined(CONFIG_ENABLE_WIFI_STATION) || defined(CONFIG_ENABLE_WIFI_AP) +#define CHIP_DEVICE_CONFIG_ENABLE_WPA 1 +#else +#define CHIP_DEVICE_CONFIG_ENABLE_WPA 0 +#endif + +#ifdef CONFIG_ENABLE_MATTER_OVER_THREAD +#define CHIP_ENABLE_OPENTHREAD 1 +#else +#define CHIP_ENABLE_OPENTHREAD 0 +#endif + +#ifdef CONFIG_OPENTHREAD_FTD +#define CHIP_DEVICE_CONFIG_THREAD_FTD 1 +#else +#define CHIP_DEVICE_CONFIG_THREAD_FTD 0 +#endif + +#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER +#define CHIP_DEVICE_CONFIG_THREAD_BORDER_ROUTER 1 +#else +#define CHIP_DEVICE_CONFIG_THREAD_BORDER_ROUTER 0 +#endif + +#define CHIP_DEVICE_CONFIG_USES_OTBR_POSIX_DBUS_STACK 0 +#define CHIP_STACK_LOCK_TRACKING_ENABLED 1 +#define CHIP_STACK_LOCK_TRACKING_ERROR_FATAL 1 + +#ifdef CONFIG_ENABLE_ROTATING_DEVICE_ID +#define CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING 1 +#else +#define CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING 0 +#endif + +#define CHIP_DEVICE_CONFIG_RUN_AS_ROOT 1 +#define CHIP_DISABLE_PLATFORM_KVS 0 + +#ifdef CONFIG_ENABLE_OTA_REQUESTOR +#define CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR 1 +#else +#define CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR 0 +#endif + +#ifdef CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER +#define CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER 0 +#else +#define CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER 1 +#endif + +#define CHIP_USE_TRANSITIONAL_DEVICE_INSTANCE_INFO_PROVIDER 1 +#define CHIP_DEVICE_LAYER_TARGET_ESP32 1 + + +#define CHIP_DEVICE_CONFIG_MAX_DISCOVERED_IP_ADDRESSES 5 +#define CHIP_DEVICE_CONFIG_ENABLE_DYNAMIC_MRP_CONFIG 0 + +#define CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF 0 + +#if defined(CONFIG_THREAD_NETWORK_COMMISSIONING_DRIVER) && defined(CONFIG_THREAD_NETWORK_ENDPOINT_ID) +#define CHIP_DEVICE_CONFIG_THREAD_NETWORK_ENDPOINT_ID CONFIG_THREAD_NETWORK_ENDPOINT_ID +#else +#define CHIP_DEVICE_CONFIG_THREAD_NETWORK_ENDPOINT_ID 0 +#endif + +// For definitions for external platform +#define CHIP_DEVICE_LAYER_TARGET ESP32_custom +#define BLE_PLATFORM_CONFIG_INCLUDE +#define CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE +#define CHIP_PLATFORM_CONFIG_INCLUDE +#define INET_CONFIG_INCLUDE +#define SYSTEM_PLATFORM_CONFIG_INCLUDE +#define EXTERNAL_CONFIGURATIONMANAGERIMPL_HEADER +#define EXTERNAL_CHIPDEVICEPLATFORMEVENT_HEADER +#define EXTERNAL_CONNECTIVITYMANAGERIMPL_HEADER +#define EXTERNAL_BLEMANAGERIMPL_HEADER +#define EXTERNAL_KEYVALUESTOREMANAGERIMPL_HEADER +#define EXTERNAL_PLATFORMMANAGERIMPL_HEADER +#define EXTERNAL_THREADSTACKMANAGERIMPL_HEADER +") +endif() diff --git a/generate-include-files.cmake b/generate-include-files.cmake index 2bbc696c3..5b14a6ed9 100644 --- a/generate-include-files.cmake +++ b/generate-include-files.cmake @@ -10,6 +10,14 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/FirmwareBuildTime.h #define CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME_MATTER_EPOCH_S ${BUILD_SECONDS} ") +# Generating access/AccessBuildConfig.h +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/access/AccessBuildConfig.h +"#pragma once\n +#include \n + +#define CHIP_CONFIG_USE_ACCESS_RESTRICTIONS 0 +") + # Generating app/AppBuildConfig.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/AppBuildConfig.h "#pragma once\n @@ -25,18 +33,12 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/AppBuildConfig.h #define CHIP_CONFIG_ENABLE_SESSION_RESUMPTION 1 #define CHIP_CONFIG_ACCESS_CONTROL_POLICY_LOGGING_VERBOSITY 0 -#ifdef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM -#define CHIP_CONFIG_PERSIST_SUBSCRIPTIONS 0 -#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION 0 -#else +#ifdef CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS #define CHIP_CONFIG_PERSIST_SUBSCRIPTIONS 1 #define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION 1 -#endif - -#ifdef CONFIG_ENABLE_MATTER_EVENT_LIST -#define CHIP_CONFIG_ENABLE_EVENTLIST_ATTRIBUTE 1 #else -#define CHIP_CONFIG_ENABLE_EVENTLIST_ATTRIBUTE 0 +#define CHIP_CONFIG_PERSIST_SUBSCRIPTIONS 0 +#define CHIP_CONFIG_SUBSCRIPTION_TIMEOUT_RESUMPTION 0 #endif #ifdef CONFIG_DISABLE_READ_CLIENT @@ -44,23 +46,58 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/AppBuildConfig.h #else #define CHIP_CONFIG_ENABLE_READ_CLIENT 1 #endif + +#define CHIP_CONFIG_STATIC_GLOBAL_INTERACTION_MODEL_ENGINE 1 +#define TIME_SYNC_ENABLE_TSC_FEATURE 1 +#define NON_SPEC_COMPLIANT_OTA_ACTION_DELAY_FLOOR -1 +#define CHIP_DEVICE_CONFIG_DYNAMIC_SERVER 0 +#define CHIP_CONFIG_ENABLE_BUSY_HANDLING_FOR_OPERATIONAL_SESSION_SETUP 1 +#define CHIP_CONFIG_DATA_MODEL_CHECK_DIE_ON_FAILURE 0 +#define CHIP_CONFIG_USE_DATA_MODEL_INTERFACE 0 +#define CHIP_CONFIG_USE_EMBER_DATA_MODEL 1 ") # Generating app/icd/server/ICDServerBuildConfig.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/icd/server/ICDServerBuildConfig.h "#pragma once\n +#include \n #ifdef CONFIG_ENABLE_ICD_SERVER #define CHIP_CONFIG_ENABLE_ICD_SERVER 1 #else #define CHIP_CONFIG_ENABLE_ICD_SERVER 0 #endif +#ifdef CONFIG_ENABLE_ICD_LIT +#define CHIP_CONFIG_ENABLE_ICD_LIT 1 +#else #define CHIP_CONFIG_ENABLE_ICD_LIT 0 +#endif + +#ifdef CONFIG_ENABLE_ICD_CIP +#define CHIP_CONFIG_ENABLE_ICD_CIP 1 +#else #define CHIP_CONFIG_ENABLE_ICD_CIP 0 +#endif + +#ifdef CONFIG_ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER +#define CHIP_CONFIG_ENABLE_ICD_UAT 1 +#else #define CHIP_CONFIG_ENABLE_ICD_UAT 0 +#endif + +#define CHIP_CONFIG_ENABLE_ICD_DSLS 0 + +#ifdef CONFIG_ICD_REPORT_ON_ACTIVE_MODE +#define ICD_REPORT_ON_ENTER_ACTIVE_MODE 1 +#else #define ICD_REPORT_ON_ENTER_ACTIVE_MODE 0 +#endif + +#ifdef CONFIG_ICD_MAX_NOTIFICATION_SUBSCRIBERS +#define ICD_MAX_NOTIFICATION_SUBSCRIBERS CONFIG_ICD_MAX_NOTIFICATION_SUBSCRIBERS +#else #define ICD_MAX_NOTIFICATION_SUBSCRIBERS 1 -#define ICD_ENFORCE_SIT_SLOW_POLL_LIMIT 0 +#endif ") # Generating asn1/ASN1OID.h @@ -321,13 +358,14 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/core/CHIPBuildConfig.h #define CHIP_CONFIG_TEST 0 #endif -#define CHIP_ERROR_LOGGING (CONFIG_LOG_DEFAULT_LEVEL >= 1) -#define CHIP_PROGRESS_LOGGING (CONFIG_LOG_DEFAULT_LEVEL >= 3) -#define CHIP_DETAIL_LOGGING (CONFIG_LOG_DEFAULT_LEVEL >= 4) +#define CHIP_ERROR_LOGGING (CONFIG_CHIP_LOG_DEFAULT_LEVEL >= 1) +#define CHIP_PROGRESS_LOGGING (CONFIG_CHIP_LOG_DEFAULT_LEVEL >= 3) +#define CHIP_DETAIL_LOGGING (CONFIG_CHIP_LOG_DEFAULT_LEVEL >= 4) #define CHIP_CONFIG_LOG_MESSAGE_MAX_SIZE 256 -#define CHIP_AUTOMATION_LOGGING (CONFIG_LOG_DEFAULT_LEVEL >= 5) +#define CHIP_AUTOMATION_LOGGING (CONFIG_CHIP_LOG_DEFAULT_LEVEL >= 5) #define CHIP_PW_TOKENIZER_LOGGING 0 #define CHIP_USE_PW_LOGGING 0 +#define CHIP_EXCHANGE_NODE_ID_LOGGING 0 #define CHIP_CONFIG_SHORT_ERROR_STR 1 #define CHIP_CONFIG_ENABLE_ARG_PARSER 1 #define CHIP_TARGET_STYLE_UNIX 0 @@ -346,6 +384,9 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/core/CHIPBuildConfig.h #define CHIP_CONFIG_MINMDNS_MAX_PARALLEL_RESOLVES 2 #define CHIP_CONFIG_CANCELABLE_HAS_INFO_STRING_FIELD 0 #define CHIP_CONFIG_BIG_ENDIAN_TARGET 0 +#define CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_WRITE 1 +#define CHIP_CONFIG_TLV_VALIDATE_CHAR_STRING_ON_READ 0 +#define CHIP_CONFIG_COMMAND_SENDER_BUILTIN_SUPPORT_FOR_BATCHED_COMMANDS 0 ") # Generating crypto/CryptoBuildConfig.h @@ -354,6 +395,7 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto/CryptoBuildConfig.h #include \n #define CHIP_CRYPTO_MBEDTLS 1 #define CHIP_CRYPTO_PSA 0 +#define CHIP_CRYPTO_PSA_SPAKE2P 0 #define CHIP_CRYPTO_OPENSSL 0 #define CHIP_CRYPTO_BORINGSSL 0 #define CHIP_CRYPTO_PLATFORM 0 @@ -363,7 +405,12 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto/CryptoBuildConfig.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/inet/InetBuildConfig.h "#pragma once\n #include \n + +#ifdef CONFIG_BUILD_CHIP_TESTS +#define INET_CONFIG_TEST 1 +#else #define INET_CONFIG_TEST 0 +#endif #ifdef CONFIG_DISABLE_IPV4 #define INET_CONFIG_ENABLE_IPV4 0 @@ -371,7 +418,7 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/inet/InetBuildConfig.h #define INET_CONFIG_ENABLE_IPV4 1 #endif -#define INET_CONFIG_ENABLE_TCP_ENDPOINT 1 +#define INET_CONFIG_ENABLE_TCP_ENDPOINT 0 #define INET_CONFIG_ENABLE_UDP_ENDPOINT 1 #define HAVE_LWIP_RAW_BIND_NETIF 1 @@ -394,14 +441,15 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lwip/lwip_buildconfig.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/matter/tracing/build_config.h "#pragma once\n #include \n -#ifdef CONFIG_ENABLE_ESP_INSIGHTS_TRACE +#if defined(CONFIG_ENABLE_ESP_INSIGHTS_TRACE) && !defined(CONFIG_IDF_TARGET_ESP32H2) #define MATTER_TRACING_ENABLED 1 #else #define MATTER_TRACING_ENABLED 0 #endif ") -# Generating platform/CHIPDeviceBuildConfig.h +if (NOT CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM) +# Generating platform/CHIPDeviceBuildConfig.h when external platform is not enabled. file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/platform/CHIPDeviceBuildConfig.h "#pragma once\n #include \n @@ -424,6 +472,13 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/platform/CHIPDeviceBuildConfig.h #define CHIP_DEVICE_CONFIG_THREAD_FTD 0 #endif +#ifdef CONFIG_OPENTHREAD_BORDER_ROUTER +#define CHIP_DEVICE_CONFIG_THREAD_BORDER_ROUTER 1 +#else +#define CHIP_DEVICE_CONFIG_THREAD_BORDER_ROUTER 0 +#endif + +#define CHIP_DEVICE_CONFIG_USES_OTBR_POSIX_DBUS_STACK 0 #define CHIP_STACK_LOCK_TRACKING_ENABLED 1 #define CHIP_STACK_LOCK_TRACKING_ERROR_FATAL 1 @@ -451,19 +506,23 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/platform/CHIPDeviceBuildConfig.h #define CHIP_USE_TRANSITIONAL_DEVICE_INSTANCE_INFO_PROVIDER 1 #define CHIP_DEVICE_LAYER_TARGET_ESP32 1 -#ifdef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM -#define CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE -#define BLE_PLATFORM_CONFIG_INCLUDE -#define CHIP_PLATFORM_CONFIG_INCLUDE -#define SYSTEM_PLATFORM_CONFIG_INCLUDE -#define CHIP_DEVICE_LAYER_TARGET ESP32_custom -#else +#ifndef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM #define CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE #define CHIP_DEVICE_LAYER_TARGET ESP32 #endif #define CHIP_DEVICE_CONFIG_MAX_DISCOVERED_IP_ADDRESSES 5 + +#if defined(CONFIG_THREAD_NETWORK_COMMISSIONING_DRIVER) && defined(CONFIG_THREAD_NETWORK_ENDPOINT_ID) +#define CHIP_DEVICE_CONFIG_THREAD_NETWORK_ENDPOINT_ID CONFIG_THREAD_NETWORK_ENDPOINT_ID +#else +#define CHIP_DEVICE_CONFIG_THREAD_NETWORK_ENDPOINT_ID 0 +#endif + +#define CHIP_DEVICE_CONFIG_ENABLE_DYNAMIC_MRP_CONFIG 0 +#define CHIP_DEVICE_CONFIG_ENABLE_WIFIPAF 0 ") +endif() # Generating setup_payload/CHIPAdditionalDataPayloadBuildConfig.h file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/setup_payload/CHIPAdditionalDataPayloadBuildConfig.h @@ -510,12 +569,12 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/system/SystemBuildConfig.h #define HAVE_NETINET_ICMP6_H 1 #define HAVE_ICMP6_FILTER 1 #define CONFIG_HAVE_VCBPRINTF 0 -#define CONFIG_HAVE_VSNPRINTF_EX 0 #define HAVE_SYS_SOCKET_H 0 #ifndef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM #define CHIP_PLATFORM_CONFIG_INCLUDE #define SYSTEM_PLATFORM_CONFIG_INCLUDE +// SYSTEM_PROJECT_CONFIG_INCLUDE and CHIP_PROJECT_CONFIG_INCLUDE are defined in CMakeLists.txt #endif #define CHIP_SYSTEM_LAYER_IMPL_CONFIG_FILE @@ -694,3 +753,24 @@ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CHIPVersion.h */ #define CHIP_VERSION_CODE CHIP_VERSION_CODE_ENCODE(CHIP_VERSION_MAJOR, CHIP_VERSION_MINOR, CHIP_VERSION_PATCH) ") + +# Automatically added defines for script +#define BLE_PROJECT_CONFIG_INCLUDE 1 +#define INET_PROJECT_CONFIG_INCLUDE 1 +#define LWIP_DEBUG 1 +#define CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE 1 +#define CHIP_DEVICE_CONFIG_ENABLE_NFC 1 +#define CONFIG_CHIP_NFC_COMMISSIONING 1 +#define CHIP_DEVICE_PROJECT_CONFIG_INCLUDE 1 +#define CHIP_DEVICE_CONFIG_FIRWMARE_BUILD_DATE 1 +#define CHIP_DEVICE_CONFIG_ENABLE_WIFI 1 +#define CHIP_DEVICE_LAYER_TARGET_NXP_ZEPHYR 1 +#define CHIP_DEVICE_ENABLE_DATA_MODEL 1 +#define CHIP_DEVICE_LAYER_TARGET_${possible_device_layer_target_define} 1 +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION 1 +#define CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING 1 +#define CHIP_DEVICE_CONFIG_DEVICE_VENDOR_ID 1 +#define CHIP_DEVICE_CONFIG_DEVICE_PRODUCT_ID 1 +#define CHIP_DEVICE_LAYER_NONE 1 +#define EXTERNAL_KEYVALUESTOREMANAGERIMPL_HEADER 1 +#define SYSTEM_ENABLE_CLANG_THREAD_SAFETY_ANALYSIS 1 (configuration by gn 'is_clang') diff --git a/idf_component.yml b/idf_component.yml index 9c076c652..46b8af955 100644 --- a/idf_component.yml +++ b/idf_component.yml @@ -1,5 +1,5 @@ ## IDF Component Manager Manifest File -version: 0.0.2 +version: 1.4.0 description: Espressif's Matter SDK Component url: https://github.com/espressif/esp-matter files: @@ -10,8 +10,8 @@ files: - "./Kconfig" - "./LICENSE" - "./generate-include-files.cmake" - - "./ota-image.cmake" - "./README.md" + - "./CHANGELOG.md" - "./components/**/*" - "./connectedhomeip/connectedhomeip/config/esp32/components/chip/Kconfig" - "./connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake" @@ -19,9 +19,14 @@ files: - "./connectedhomeip/connectedhomeip/src/access/examples/*.*" - "./connectedhomeip/connectedhomeip/src/app/*.*" - "./connectedhomeip/connectedhomeip/src/app/app-platform/**/*" + - "./connectedhomeip/connectedhomeip/src/app/cluster-building-blocks/**/*" - "./connectedhomeip/connectedhomeip/src/app/clusters/**/*" + - "./connectedhomeip/connectedhomeip/src/app/codegen-data-model-provider/**/*" + - "./connectedhomeip/connectedhomeip/src/app/common/**/*" - "./connectedhomeip/connectedhomeip/src/app/data-model/**/*" + - "./connectedhomeip/connectedhomeip/src/app/data-model-provider/**/*" - "./connectedhomeip/connectedhomeip/src/app/dynamic_server/**/*" + - "./connectedhomeip/connectedhomeip/src/app/ember_coupling/**/*" - "./connectedhomeip/connectedhomeip/src/app/icd/**/*" - "./connectedhomeip/connectedhomeip/src/app/MessageDef/**/*" - "./connectedhomeip/connectedhomeip/src/app/reporting/**/*" @@ -30,6 +35,7 @@ files: - "./connectedhomeip/connectedhomeip/src/ble/*.*" - "./connectedhomeip/connectedhomeip/src/controller/*.*" - "./connectedhomeip/connectedhomeip/src/controller/python/chip/tlv/tlvlist.py" + - "./connectedhomeip/connectedhomeip/src/controller/python/chip/tlv/__init__.py" - "./connectedhomeip/connectedhomeip/src/credentials/*.*" - "./connectedhomeip/connectedhomeip/src/credentials/attestation_verifier/**/*" - "./connectedhomeip/connectedhomeip/src/credentials/examples/**/*" @@ -58,11 +64,15 @@ files: - "./connectedhomeip/connectedhomeip/src/tracing/esp32_trace/**/*" - "./connectedhomeip/connectedhomeip/src/transport/*.*" - "./connectedhomeip/connectedhomeip/src/transport/raw/**/*" + - "./connectedhomeip/connectedhomeip/third_party/jsoncpp/repo/include/**/*" - "./connectedhomeip/connectedhomeip/third_party/nlassert/repo/include/**/*" - "./connectedhomeip/connectedhomeip/third_party/nlfaultinjection/include/**/*" - "./connectedhomeip/connectedhomeip/third_party/nlfaultinjection/src/**/*" - "./connectedhomeip/connectedhomeip/third_party/nlio/repo/include/**/*" - "./connectedhomeip/connectedhomeip/zzz_generated/app-common/**/*" + - "./connectedhomeip/connectedhomeip/zzz_generated/chip-tool/zap-generated/cluster/logging/**/*" + - "./connectedhomeip/connectedhomeip/examples/chip-tool/commands/clusters/DataModelLogger.h" + - "./connectedhomeip/connectedhomeip/examples/chip-tool/commands/common/RemoteDataModelLogger.h" dependencies: espressif/mdns: version: "^1.1.0" @@ -71,7 +81,7 @@ dependencies: - if: "target != esp32h2" espressif/esp_secure_cert_mgr: - version: "^2.3.0" + version: "^2.5.0" rules: - if: "idf_version >=4.3" @@ -82,7 +92,7 @@ dependencies: - if: "idf_version >=4.4" espressif/esp_insights: - version: "1.0.1" + version: "1.2.2" require: public # There is an issue with IDF-Component-Manager when ESP Insights is included. # Issue: https://github.com/project-chip/connectedhomeip/issues/29125 @@ -92,3 +102,19 @@ dependencies: espressif/json_parser: "~1.0.0" espressif/json_generator: "~1.1.0" + + espressif/esp_rcp_update: + version: "1.2.0" + rules: + - if: "idf_version >=5.0" + + espressif/esp_delta_ota: + version: "^1.1.0" + require: public + rules: + - if: "idf_version >=4.3" + + espressif/esp_wifi_remote: + version: ">=0.1.12" + rules: + - if: "target in [esp32p4]" \ No newline at end of file