add esp_matter component based on esp-matter sdk and connectedhomeip

This commit is contained in:
chendejin
2024-02-06 16:14:02 +08:00
parent 8a421d1f18
commit d951642b5b
7 changed files with 1372 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
name: Push components to Espressif Component Service
on:
push:
branches:
- main
jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Upload components to component service
uses: espressif/upload-components-ci-action@v1
with:
name: "esp_matter"
namespace: "espressif"
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
+28
View File
@@ -154,6 +154,25 @@ variables:
REPOS_PATH: "$CI_PROJECT_DIR/repos"
IDF_CCACHE_ENABLE: 1
.build_managed_component_light_example:
stage: build
image: gitlab.espressif.cn:5050/app-frameworks/esp-matter/build-env:latest
tags:
- build
- matter_cache
before_script:
- *add_gitlab_ssh_key
- *get_build_caches
- *chip_submodule_update
- *setup_idf
- cd ${ESP_MATTER_PATH}
- mkdir -p ${REPOS_PATH}
- *update_build_caches
variables:
IDF_VERSION: "v5.1.2"
REPOS_PATH: "$CI_PROJECT_DIR/repos"
IDF_CCACHE_ENABLE: 1
build_esp_matter_examples_pytest_C6_idf_v5_1:
extends:
- .build_examples_template
@@ -305,6 +324,15 @@ build_upstream_examples:
script:
- *build_matter_examples
build_managed_component_light:
extends:
- .build_managed_component_light_example
when: manual
script:
- cd ${ESP_MATTER_PATH}/examples/managed_component_light
- idf.py set-target esp32c3
- idf.py build
build_docs:
stage: build
image: $CI_DOCKER_REGISTRY/esp-idf-doc-env-v5.1:1-1
+454
View File
@@ -0,0 +1,454 @@
if(NOT MATTER_SDK_PATH)
get_filename_component(MATTER_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/connectedhomeip/connectedhomeip/ REALPATH)
endif()
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)
set(REQUIRE_COMPONENTS esp_eth freertos lwip bt mbedtls fatfs app_update console openthread nvs_flash spi_flash
esp_secure_cert_mgr esp_system esp_timer json_parser spiffs esp_http_client json_generator esp_netif vfs json)
if(NOT "${IDF_TARGET}" STREQUAL "esp32h2")
list(APPEND REQUIRE_COMPONENTS mdns)
endif()
function(collect_exclude_files PATH INCLUDE_FILES EXCLUDE_LIST)
file(GLOB ALL_FILES ${PATH}/*.cpp ${PATH}/*.c)
set(EXCLUDE_FILES "")
foreach(FILE ${ALL_FILES})
list(FIND INCLUDE_FILES ${FILE} EXCLUDE_INDEX)
if(EXCLUDE_INDEX LESS 0)
list(APPEND EXCLUDE_FILES ${FILE})
endif()
endforeach()
set(${EXCLUDE_LIST} ${EXCLUDE_FILES} PARENT_SCOPE)
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/icd/"
"${MATTER_SDK_PATH}/src/app/MessageDef"
"${MATTER_SDK_PATH}/src/app/reporting"
"${MATTER_SDK_PATH}/src/app/server"
"${MATTER_SDK_PATH}/src/ble"
"${MATTER_SDK_PATH}/src/credentials"
"${MATTER_SDK_PATH}/src/credentials/attestation_verifier"
"${MATTER_SDK_PATH}/src/credentials/examples"
"${MATTER_SDK_PATH}/src/credentials/tests"
"${MATTER_SDK_PATH}/src/crypto"
"${MATTER_SDK_PATH}/src/inet"
"${MATTER_SDK_PATH}/src/lib/address_resolve"
"${MATTER_SDK_PATH}/src/lib/asn1"
"${MATTER_SDK_PATH}/src/lib/core"
"${MATTER_SDK_PATH}/src/lib/dnssd"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/core"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/records"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/responders"
"${MATTER_SDK_PATH}/src/lib/support"
"${MATTER_SDK_PATH}/src/lib/support/logging"
"${MATTER_SDK_PATH}/src/lib/support/verhoeff"
"${MATTER_SDK_PATH}/src/messaging"
"${MATTER_SDK_PATH}/src/platform"
"${MATTER_SDK_PATH}/src/platform/OpenThread"
"${MATTER_SDK_PATH}/src/protocols"
"${MATTER_SDK_PATH}/src/protocols/bdx"
"${MATTER_SDK_PATH}/src/protocols/echo"
"${MATTER_SDK_PATH}/src/protocols/secure_channel"
"${MATTER_SDK_PATH}/src/protocols/user_directed_commissioning"
"${MATTER_SDK_PATH}/src/setup_payload"
"${MATTER_SDK_PATH}/src/system"
"${MATTER_SDK_PATH}/src/tracing"
"${MATTER_SDK_PATH}/src/transport"
"${MATTER_SDK_PATH}/src/transport/raw"
"${MATTER_SDK_PATH}/third_party/nlfaultinjection/src"
"${MATTER_SDK_PATH}/zzz_generated/app-common/app-common/zap-generated")
set(INCLUDE_DIRS_LIST "${MATTER_SDK_PATH}/src"
"${MATTER_SDK_PATH}/src/include"
"${MATTER_SDK_PATH}/src/lib"
"${MATTER_SDK_PATH}/src/platform/OpenThread"
"${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"
"${MATTER_SDK_PATH}/src/credentials/attestation_verifier/FileAttestationTrustStore.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/TestCertificationDeclaration.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestChipCert.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestCommissionerDUTVectors.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestDeviceAttestationConstruction.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestDeviceAttestationCredentials.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestFabricTable.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestGroupDataProvider.cpp"
"${MATTER_SDK_PATH}/src/credentials/tests/TestPersistentStorageOpCertStore.cpp"
"${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/PSASessionKeystore.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/dnssd/Advertiser_ImplNone.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/Resolver_ImplNone.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/AddressPolicy_LibNlImpl.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/Logging.cpp"
"${MATTER_SDK_PATH}/src/lib/support/UnitTestRegistration.cpp"
"${MATTER_SDK_PATH}/src/lib/support/UnitTestUtils.cpp"
"${MATTER_SDK_PATH}/src/lib/support/JniReferences.cpp"
"${MATTER_SDK_PATH}/src/lib/support/CHIPMem-Simple.cpp"
"${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/GenericThreadStackManagerImpl_OpenThread_LwIP.cpp"
"${MATTER_SDK_PATH}/src/system/SystemLayerImplSelect.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()
list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter"
"${ESP_COMPONENTS_PATH}/esp_matter/private"
"${ESP_COMPONENTS_PATH}/esp_matter/utils"
"${MATTER_SDK_PATH}/zzz_generated/app-common/app-common/zap-generated/attributes"
"${MATTER_SDK_PATH}/src/app/util"
"${ESP_COMPONENTS_PATH}/esp_matter_bridge"
"${ESP_COMPONENTS_PATH}/esp_matter_console")
list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter"
"${ESP_COMPONENTS_PATH}/esp_matter/utils"
"${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")
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")
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")
endif()
endif()
idf_build_get_property(rainmaker_enabled RAINMAKER_ENABLED)
if (${rainmaker_enabled})
list(APPEND SRC_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_rainmaker")
list(APPEND INCLUDE_DIRS_LIST "${ESP_COMPONENTS_PATH}/esp_matter_rainmaker")
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
# So, below makes the same provision for software version number
if (CONFIG_APP_PROJECT_VER_FROM_CONFIG)
set(chip_config_software_version_number ${CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER})
elseif (DEFINED PROJECT_VER_NUMBER)
set(chip_config_software_version_number ${PROJECT_VER_NUMBER})
else()
set(chip_config_software_version_number 0)
endif()
if(CONFIG_DISABLE_READ_CLIENT)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/app/BufferedReadCallback.cpp"
"${MATTER_SDK_PATH}/src/app/ClusterStateCache.cpp"
"${MATTER_SDK_PATH}/src/app/ReadClient.cpp")
endif()
if (NOT CONFIG_BUILD_CHIP_TESTS)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/inet/InetFaultInjection.cpp"
"${MATTER_SDK_PATH}/src/lib/support/CHIPFaultInjection.cpp"
"${MATTER_SDK_PATH}/src/system/SystemFaultInjection.cpp"
"${MATTER_SDK_PATH}/third_party/nlfaultinjection/src/nlfaultinjection.cpp")
endif()
if (NOT CONFIG_USE_MINIMAL_MDNS)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/lib/dnssd/ActiveResolveAttempts.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/Advertiser_ImplMinimalMdns.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/IncrementalResolve.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/MinimalMdnsServer.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/Resolver_ImplMinimalMdns.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/Parser.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/RecordData.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/ResponseSender.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/Server.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/AddressPolicy.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/core/QName.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/core/QNameString.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/core/RecordWriter.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/responders/IP.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/responders/QueryResponder.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/records/IP.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/records/ResourceRecord.cpp"
"${MATTER_SDK_PATH}/src/lib/dnssd/minimal_mdns/AddressPolicy_DefaultImpl.cpp")
else()
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/lib/dnssd/Discovery_ImplPlatform.cpp")
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")
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/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}")
endif()
if (CONFIG_ENABLE_CHIP_CONTROLLER_BUILD)
list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/controller")
if (CONFIG_DISABLE_READ_CLIENT)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/CHIPDeviceController.cpp"
"${MATTER_SDK_PATH}/src/controller/CommissioningWindowOpener.cpp"
"${MATTER_SDK_PATH}/src/controller/CurrentFabricRemover.cpp")
endif()
endif()
if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP))
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/lib/shell/commands/WiFi.cpp")
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"
"${MATTER_SDK_PATH}/src/platform/OpenThread/OpenThreadUtils.cpp"
"${MATTER_SDK_PATH}/src/platform/OpenThread/OpenThreadDnssdImpl.cpp")
endif()
# Set up CHIP project configuration file
if (CONFIG_CHIP_PROJECT_CONFIG)
get_filename_component(CHIP_PROJECT_CONFIG
${CONFIG_CHIP_PROJECT_CONFIG}
REALPATH
BASE_DIR ${CMAKE_SOURCE_DIR}
)
set(CHIP_PROJECT_CONFIG "<${CHIP_PROJECT_CONFIG}>")
else()
set(CHIP_PROJECT_CONFIG "")
endif()
if (CONFIG_ENABLE_ESP_INSIGHTS_TRACE)
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")
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)
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})
else()
message(FATAL_ERROR "CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM is set, but CONFIG_CHIP_EXTERNAL_PLATFORM_DIR is not set correctly!")
endif()
else()
list(APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32"
"${MATTER_SDK_PATH}/src/platform/ESP32/route_hook")
list(APPEND INCLUDE_DIRS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32"
"${MATTER_SDK_PATH}/src/platform/ESP32/bluedroid"
"${MATTER_SDK_PATH}/src/platform/ESP32/nimble"
"${MATTER_SDK_PATH}/src/platform/ESP32/route_hook")
if (CONFIG_USE_MINIMAL_MDNS)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/DnssdImpl.cpp")
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")
endif()
if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP))
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ConnectivityManagerImpl_WiFi.cpp"
"${MATTER_SDK_PATH}/src/platform/ESP32/NetworkCommissioningDriver.cpp"
"${MATTER_SDK_PATH}/src/platform/ESP32/route_hook/ESP32RouteHook.c"
"${MATTER_SDK_PATH}/src/platform/ESP32/route_hook/ESP32RouteTable.c")
endif()
if(NOT CONFIG_ENABLE_ROUTE_HOOK)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/route_hook/ESP32RouteHook.c"
"${MATTER_SDK_PATH}/src/platform/ESP32/route_hook/ESP32RouteTable.c")
endif()
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")
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")
endif()
endif()
endif()
if (NOT CONFIG_ENABLE_ETHERNET_TELEMETRY)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ConnectivityManagerImpl_Ethernet.cpp"
"${MATTER_SDK_PATH}/src/platform/ESP32/NetworkCommissioningDriver_Ethernet.cpp")
endif()
if ((NOT CONFIG_OPENTHREAD_ENABLED) OR (NOT CONFIG_ENABLE_MATTER_OVER_THREAD))
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/OpenthreadLauncher.cpp"
"${MATTER_SDK_PATH}/src/platform/ESP32/ThreadStackManagerImpl.cpp")
endif()
if (NOT CONFIG_ENABLE_OTA_REQUESTOR)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/OTAImageProcessorImpl.cpp")
endif()
if (NOT CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32FactoryDataProvider.cpp")
endif()
if (NOT CONFIG_ENABLE_ESP32_DEVICE_INFO_PROVIDER)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32DeviceInfoProvider.cpp")
endif()
if (NOT CONFIG_SEC_CERT_DAC_PROVIDER)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32SecureCertDACProvider.cpp")
endif()
if (NOT CONFIG_USE_ESP32_ECDSA_PERIPHERAL)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/platform/ESP32/ESP32CHIPCryptoPAL.cpp")
endif()
endif()
if (NOT CONFIG_ENABLE_CHIPOBLE)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/ble/BLEEndPoint.cpp"
"${MATTER_SDK_PATH}/src/ble/BleError.cpp"
"${MATTER_SDK_PATH}/src/ble/BleLayer.cpp"
"${MATTER_SDK_PATH}/src/ble/BleUUID.cpp"
"${MATTER_SDK_PATH}/src/ble/BtpEngine.cpp")
endif()
if(NOT CONFIG_ENABLE_ICD_SERVER)
list(APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/app/icd/ICDManager.cpp"
"${MATTER_SDK_PATH}/src/app/icd/ICDNotifier.cpp")
endif()
idf_component_register(SRC_DIRS ${SRC_DIRS_LIST}
EXCLUDE_SRCS ${EXCLUDE_SRCS_LIST}
INCLUDE_DIRS ${INCLUDE_DIRS_LIST}
PRIV_INCLUDE_DIRS ${PRIV_INCLUDE_DIRS_LIST}
REQUIRES ${REQUIRE_COMPONENTS})
target_compile_options(${COMPONENT_LIB} PUBLIC
"-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=<lib/address_resolve/AddressResolve_DefaultImpl.h>"
"-DCHIP_CONFIG_SOFTWARE_VERSION_NUMBER=${chip_config_software_version_number}")
if (CHIP_PROJECT_CONFIG)
target_compile_options(${COMPONENT_LIB} PUBLIC
"-DCHIP_PROJECT_CONFIG_INCLUDE=${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)
# 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.
# https://github.com/espressif/esp-idf/issues/6906#issuecomment-1207373706
if (CONFIG_IDF_TARGET_ARCH_XTENSA AND (${IDF_VERSION_MAJOR} LESS 5))
idf_build_set_property(COMPILE_OPTIONS "-Wno-format" APPEND)
endif()
# Time sync client feature depends on read client, disable it when read client is disabled.
if (CONFIG_DISABLE_READ_CLIENT)
target_compile_options(${COMPONENT_LIB} PUBLIC "-DTIME_SYNC_ENABLE_TSC_FEATURE=0")
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")
endif()
if (NOT CMAKE_BUILD_EARLY_EXPANSION)
if (CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
target_compile_options(${COMPONENT_LIB} PUBLIC "-DLWIP_DEBUG=1")
endif()
endif()
if (NOT CONFIG_ESP_MATTER_ENABLE_DATA_MODEL)
target_include_directories(${COMPONENT_LIB} PUBLIC "${CMAKE_BINARY_DIR}/gen/app-codegen/cpp-app"
"${CMAKE_BINARY_DIR}/gen/app-zapgen/zapgen/app-templates")
endif()
idf_component_get_property(freertos_dir freertos COMPONENT_DIR)
target_include_directories(${COMPONENT_LIB} PRIVATE
"${freertos_dir}/include/freertos"
"${freertos_dir}/FreeRTOS-Kernel/include/freertos")
target_include_directories(${COMPONENT_LIB} INTERFACE
"${MATTER_SDK_PATH}/examples/platform/esp32")
#Generate some include files
include(${CMAKE_CURRENT_LIST_DIR}/generate-include-files.cmake)
idf_component_get_property(main_lib main COMPONENT_LIB)
set(chip_libraries $<TARGET_FILE:${main_lib}>)
target_link_libraries(${COMPONENT_LIB} INTERFACE -Wl,--start-group
${chip_libraries}
-Wl,--end-group)
# Build OTA image need a python package, leading a file change and distorying the hash of managed_components.
# In next idf_component_manager release, this may be resolved by adding include/exclude for calculating component_hash.
# Build Matter OTA image
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
)
# Adding dependecy as app target so that this runs after images are ready
add_dependencies(chip-ota-image app)
endif()
+5
View File
@@ -0,0 +1,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"
@@ -0,0 +1,80 @@
# check the source file dirs
set(EXPLANT_SRC_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}/"
"${CMAKE_CURRENT_LIST_DIR}/route_hook")
set(EXPLANT_INCLUDE_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}/../../"
"${CMAKE_CURRENT_LIST_DIR}"
"${CMAKE_CURRENT_LIST_DIR}/bluedroid"
"${CMAKE_CURRENT_LIST_DIR}/nimble"
"${CMAKE_CURRENT_LIST_DIR}/route_hook")
set(EXPLANT_EXCLUDE_SRCS_LIST)
if (CONFIG_USE_MINIMAL_MDNS)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/DnssdImpl.cpp")
endif()
if ((CONFIG_USE_MINIMAL_MDNS) OR ((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP)))
list(APPEND EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/WiFiDnssdImpl.cpp")
endif()
if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP))
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ConnectivityManagerImpl_WiFi.cpp"
"${CMAKE_CURRENT_LIST_DIR}/NetworkCommissioningDriver.cpp"
"${CMAKE_CURRENT_LIST_DIR}/route_hook/ESP32RouteHook.c"
"${CMAKE_CURRENT_LIST_DIR}/route_hook/ESP32RouteTable.c")
endif()
if(NOT CONFIG_ENABLE_ROUTE_HOOK)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/route_hook/ESP32RouteHook.c"
"${CMAKE_CURRENT_LIST_DIR}/route_hook/ESP32RouteTable.c")
endif()
if ((CONFIG_BT_ENABLED) AND (CONFIG_ENABLE_CHIPOBLE))
if (CONFIG_BT_NIMBLE_ENABLED)
list(APPEND EXPLANT_SRC_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}/nimble")
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/bluedroid/BLEManagerImpl.cpp")
if(NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/bluedroid/ChipDeviceScanner.cpp")
endif()
else()
list(APPEND EXPLANT_SRC_DIRS_LIST "${CMAKE_CURRENT_LIST_DIR}/bluedroid")
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/nimble/BLEManagerImpl.cpp")
if(NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/nimble/ChipDeviceScanner.cpp"
"${CMAKE_CURRENT_LIST_DIR}/nimble/misc.c"
"${CMAKE_CURRENT_LIST_DIR}/nimble/peer.c")
endif()
endif()
endif()
if (NOT CONFIG_ENABLE_ETHERNET_TELEMETRY)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ConnectivityManagerImpl_Ethernet.cpp"
"${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"
"${CMAKE_CURRENT_LIST_DIR}/ThreadStackManagerImpl.cpp")
endif()
if (NOT CONFIG_ENABLE_OTA_REQUESTOR)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/OTAImageProcessorImpl.cpp")
endif()
if (NOT CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ESP32FactoryDataProvider.cpp")
endif()
if (NOT CONFIG_ENABLE_ESP32_DEVICE_INFO_PROVIDER)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ESP32DeviceInfoProvider.cpp")
endif()
if (NOT CONFIG_SEC_CERT_DAC_PROVIDER)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ESP32SecureCertDACProvider.cpp")
endif()
if (NOT CONFIG_USE_ESP32_ECDSA_PERIPHERAL)
list(APPEND EXPLANT_EXCLUDE_SRCS_LIST "${CMAKE_CURRENT_LIST_DIR}/ESP32CHIPCryptoPAL.cpp")
endif()
+693
View File
@@ -0,0 +1,693 @@
# Generating FirmwareBuildTime.h
execute_process(
COMMAND date "+%s"
OUTPUT_VARIABLE BUILD_SECONDS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
math(EXPR BUILD_SECONDS "${BUILD_SECONDS} - (946684800)")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/FirmwareBuildTime.h
"#pragma once\n
#define CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME_MATTER_EPOCH_S ${BUILD_SECONDS}
")
# Generating app/AppBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/AppBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#ifdef CONFIG_CHIP_CONFIG_IM_PRETTY_PRINT
#define CHIP_CONFIG_IM_PRETTY_PRINT 1
#else
#define CHIP_CONFIG_IM_PRETTY_PRINT 0
#endif
#define CHIP_CONFIG_IM_FORCE_FABRIC_QUOTA_CHECK 0
#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
#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
#endif
#ifdef CONFIG_DISABLE_READ_CLIENT
#define CHIP_CONFIG_ENABLE_READ_CLIENT 0
#else
#define CHIP_CONFIG_ENABLE_READ_CLIENT 1
#endif
")
# Generating app/icd/ICDBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/app/icd/ICDBuildConfig.h
"#pragma once\n
#ifdef CONFIG_ENABLE_ICD_SERVER
#define CHIP_CONFIG_ENABLE_ICD_SERVER 1
#else
#define CHIP_CONFIG_ENABLE_ICD_SERVER 0
#endif
#define ICD_REPORT_ON_ENTER_ACTIVE_MODE 0
#define ICD_MAX_NOTIFICATION_SUBSCRIBERS 1
#define ICD_ENFORCE_SIT_SLOW_POLL_LIMIT 0
")
# Generating asn1/ASN1OID.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/asn1/ASN1OID.h
"#pragma once\n
#include <cstdint>
#include <cstddef>
#include <sdkconfig.h>\n
namespace chip {
namespace ASN1 {
enum OIDCategory
{
kOIDCategory_PubKeyAlgo = 0x0100,
kOIDCategory_SigAlgo = 0x0200,
kOIDCategory_AttributeType = 0x0300,
kOIDCategory_EllipticCurve = 0x0400,
kOIDCategory_Extension = 0x0500,
kOIDCategory_KeyPurpose = 0x0600,
kOIDCategory_NotSpecified = 0,
kOIDCategory_Unknown = 0x0F00,
kOIDCategory_Mask = 0x0F00
};
typedef uint16_t OID;
enum
{
kOID_PubKeyAlgo_ECPublicKey = 0x0101,
kOID_SigAlgo_ECDSAWithSHA256 = 0x0201,
kOID_AttributeType_CommonName = 0x0301,
kOID_AttributeType_Surname = 0x0302,
kOID_AttributeType_SerialNumber = 0x0303,
kOID_AttributeType_CountryName = 0x0304,
kOID_AttributeType_LocalityName = 0x0305,
kOID_AttributeType_StateOrProvinceName = 0x0306,
kOID_AttributeType_OrganizationName = 0x0307,
kOID_AttributeType_OrganizationalUnitName = 0x0308,
kOID_AttributeType_Title = 0x0309,
kOID_AttributeType_Name = 0x030A,
kOID_AttributeType_GivenName = 0x030B,
kOID_AttributeType_Initials = 0x030C,
kOID_AttributeType_GenerationQualifier = 0x030D,
kOID_AttributeType_DNQualifier = 0x030E,
kOID_AttributeType_Pseudonym = 0x030F,
kOID_AttributeType_DomainComponent = 0x0310,
kOID_AttributeType_MatterNodeId = 0x0311,
kOID_AttributeType_MatterFirmwareSigningId = 0x0312,
kOID_AttributeType_MatterICACId = 0x0313,
kOID_AttributeType_MatterRCACId = 0x0314,
kOID_AttributeType_MatterFabricId = 0x0315,
kOID_AttributeType_MatterCASEAuthTag = 0x0316,
kOID_EllipticCurve_prime256v1 = 0x0401,
kOID_Extension_BasicConstraints = 0x0501,
kOID_Extension_KeyUsage = 0x0502,
kOID_Extension_ExtendedKeyUsage = 0x0503,
kOID_Extension_SubjectKeyIdentifier = 0x0504,
kOID_Extension_AuthorityKeyIdentifier = 0x0505,
kOID_Extension_CSRRequest = 0x0506,
kOID_KeyPurpose_ServerAuth = 0x0601,
kOID_KeyPurpose_ClientAuth = 0x0602,
kOID_KeyPurpose_CodeSigning = 0x0603,
kOID_KeyPurpose_EmailProtection = 0x0604,
kOID_KeyPurpose_TimeStamping = 0x0605,
kOID_KeyPurpose_OCSPSigning = 0x0606,
kOID_NotSpecified = 0,
kOID_Unknown = 0xFFFF,
kOID_EnumMask = 0x00FF
};
struct OIDTableEntry
{
OID EnumVal;
const uint8_t *EncodedOID;
uint16_t EncodedOIDLen;
};
struct OIDNameTableEntry
{
OID EnumVal;
const char *Name;
};
extern const OIDTableEntry sOIDTable[];
extern const OIDNameTableEntry sOIDNameTable[];
extern const size_t sOIDTableSize;
#ifdef ASN1_DEFINE_OID_TABLE
static const uint8_t sOID_PubKeyAlgo_ECPublicKey[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01 };
static const uint8_t sOID_SigAlgo_ECDSAWithSHA256[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02 };
static const uint8_t sOID_AttributeType_CommonName[] = { 0x55, 0x04, 0x03 };
static const uint8_t sOID_AttributeType_Surname[] = { 0x55, 0x04, 0x04 };
static const uint8_t sOID_AttributeType_SerialNumber[] = { 0x55, 0x04, 0x05 };
static const uint8_t sOID_AttributeType_CountryName[] = { 0x55, 0x04, 0x06 };
static const uint8_t sOID_AttributeType_LocalityName[] = { 0x55, 0x04, 0x07 };
static const uint8_t sOID_AttributeType_StateOrProvinceName[] = { 0x55, 0x04, 0x08 };
static const uint8_t sOID_AttributeType_OrganizationName[] = { 0x55, 0x04, 0x0A };
static const uint8_t sOID_AttributeType_OrganizationalUnitName[] = { 0x55, 0x04, 0x0B };
static const uint8_t sOID_AttributeType_Title[] = { 0x55, 0x04, 0x0C };
static const uint8_t sOID_AttributeType_Name[] = { 0x55, 0x04, 0x29 };
static const uint8_t sOID_AttributeType_GivenName[] = { 0x55, 0x04, 0x2A };
static const uint8_t sOID_AttributeType_Initials[] = { 0x55, 0x04, 0x2B };
static const uint8_t sOID_AttributeType_GenerationQualifier[] = { 0x55, 0x04, 0x2C };
static const uint8_t sOID_AttributeType_DNQualifier[] = { 0x55, 0x04, 0x2E };
static const uint8_t sOID_AttributeType_Pseudonym[] = { 0x55, 0x04, 0x41 };
static const uint8_t sOID_AttributeType_DomainComponent[] = { 0x09, 0x92, 0x26, 0x89, 0x93, 0xF2, 0x2C, 0x64, 0x01, 0x19 };
static const uint8_t sOID_AttributeType_MatterNodeId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x01 };
static const uint8_t sOID_AttributeType_MatterFirmwareSigningId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x02 };
static const uint8_t sOID_AttributeType_MatterICACId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x03 };
static const uint8_t sOID_AttributeType_MatterRCACId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x04 };
static const uint8_t sOID_AttributeType_MatterFabricId[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x05 };
static const uint8_t sOID_AttributeType_MatterCASEAuthTag[] = { 0x2B, 0x06, 0x01, 0x04, 0x01, 0x82, 0xA2, 0x7C, 0x01, 0x06 };
static const uint8_t sOID_EllipticCurve_prime256v1[] = { 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07 };
static const uint8_t sOID_Extension_BasicConstraints[] = { 0x55, 0x1D, 0x13 };
static const uint8_t sOID_Extension_KeyUsage[] = { 0x55, 0x1D, 0x0F };
static const uint8_t sOID_Extension_ExtendedKeyUsage[] = { 0x55, 0x1D, 0x25 };
static const uint8_t sOID_Extension_SubjectKeyIdentifier[] = { 0x55, 0x1D, 0x0E };
static const uint8_t sOID_Extension_AuthorityKeyIdentifier[] = { 0x55, 0x1D, 0x23 };
static const uint8_t sOID_Extension_CSRRequest[] = { 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x0E };
static const uint8_t sOID_KeyPurpose_ServerAuth[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x01 };
static const uint8_t sOID_KeyPurpose_ClientAuth[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x02 };
static const uint8_t sOID_KeyPurpose_CodeSigning[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x03 };
static const uint8_t sOID_KeyPurpose_EmailProtection[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x04 };
static const uint8_t sOID_KeyPurpose_TimeStamping[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x08 };
static const uint8_t sOID_KeyPurpose_OCSPSigning[] = { 0x2B, 0x06, 0x01, 0x05, 0x05, 0x07, 0x03, 0x09 };
const OIDTableEntry sOIDTable[] =
{
{ kOID_PubKeyAlgo_ECPublicKey, sOID_PubKeyAlgo_ECPublicKey, sizeof(sOID_PubKeyAlgo_ECPublicKey) },
{ kOID_SigAlgo_ECDSAWithSHA256, sOID_SigAlgo_ECDSAWithSHA256, sizeof(sOID_SigAlgo_ECDSAWithSHA256) },
{ kOID_AttributeType_CommonName, sOID_AttributeType_CommonName, sizeof(sOID_AttributeType_CommonName) },
{ kOID_AttributeType_Surname, sOID_AttributeType_Surname, sizeof(sOID_AttributeType_Surname) },
{ kOID_AttributeType_SerialNumber, sOID_AttributeType_SerialNumber, sizeof(sOID_AttributeType_SerialNumber) },
{ kOID_AttributeType_CountryName, sOID_AttributeType_CountryName, sizeof(sOID_AttributeType_CountryName) },
{ kOID_AttributeType_LocalityName, sOID_AttributeType_LocalityName, sizeof(sOID_AttributeType_LocalityName) },
{ kOID_AttributeType_StateOrProvinceName, sOID_AttributeType_StateOrProvinceName, sizeof(sOID_AttributeType_StateOrProvinceName) },
{ kOID_AttributeType_OrganizationName, sOID_AttributeType_OrganizationName, sizeof(sOID_AttributeType_OrganizationName) },
{ kOID_AttributeType_OrganizationalUnitName, sOID_AttributeType_OrganizationalUnitName, sizeof(sOID_AttributeType_OrganizationalUnitName) },
{ kOID_AttributeType_Title, sOID_AttributeType_Title, sizeof(sOID_AttributeType_Title) },
{ kOID_AttributeType_Name, sOID_AttributeType_Name, sizeof(sOID_AttributeType_Name) },
{ kOID_AttributeType_GivenName, sOID_AttributeType_GivenName, sizeof(sOID_AttributeType_GivenName) },
{ kOID_AttributeType_Initials, sOID_AttributeType_Initials, sizeof(sOID_AttributeType_Initials) },
{ kOID_AttributeType_GenerationQualifier, sOID_AttributeType_GenerationQualifier, sizeof(sOID_AttributeType_GenerationQualifier) },
{ kOID_AttributeType_DNQualifier, sOID_AttributeType_DNQualifier, sizeof(sOID_AttributeType_DNQualifier) },
{ kOID_AttributeType_Pseudonym, sOID_AttributeType_Pseudonym, sizeof(sOID_AttributeType_Pseudonym) },
{ kOID_AttributeType_DomainComponent, sOID_AttributeType_DomainComponent, sizeof(sOID_AttributeType_DomainComponent) },
{ kOID_AttributeType_MatterNodeId, sOID_AttributeType_MatterNodeId, sizeof(sOID_AttributeType_MatterNodeId) },
{ kOID_AttributeType_MatterFirmwareSigningId, sOID_AttributeType_MatterFirmwareSigningId, sizeof(sOID_AttributeType_MatterFirmwareSigningId) },
{ kOID_AttributeType_MatterICACId, sOID_AttributeType_MatterICACId, sizeof(sOID_AttributeType_MatterICACId) },
{ kOID_AttributeType_MatterRCACId, sOID_AttributeType_MatterRCACId, sizeof(sOID_AttributeType_MatterRCACId) },
{ kOID_AttributeType_MatterFabricId, sOID_AttributeType_MatterFabricId, sizeof(sOID_AttributeType_MatterFabricId) },
{ kOID_AttributeType_MatterCASEAuthTag, sOID_AttributeType_MatterCASEAuthTag, sizeof(sOID_AttributeType_MatterCASEAuthTag) },
{ kOID_EllipticCurve_prime256v1, sOID_EllipticCurve_prime256v1, sizeof(sOID_EllipticCurve_prime256v1) },
{ kOID_Extension_BasicConstraints, sOID_Extension_BasicConstraints, sizeof(sOID_Extension_BasicConstraints) },
{ kOID_Extension_KeyUsage, sOID_Extension_KeyUsage, sizeof(sOID_Extension_KeyUsage) },
{ kOID_Extension_ExtendedKeyUsage, sOID_Extension_ExtendedKeyUsage, sizeof(sOID_Extension_ExtendedKeyUsage) },
{ kOID_Extension_SubjectKeyIdentifier, sOID_Extension_SubjectKeyIdentifier, sizeof(sOID_Extension_SubjectKeyIdentifier) },
{ kOID_Extension_AuthorityKeyIdentifier, sOID_Extension_AuthorityKeyIdentifier, sizeof(sOID_Extension_AuthorityKeyIdentifier) },
{ kOID_Extension_CSRRequest, sOID_Extension_CSRRequest, sizeof(sOID_Extension_CSRRequest) },
{ kOID_KeyPurpose_ServerAuth, sOID_KeyPurpose_ServerAuth, sizeof(sOID_KeyPurpose_ServerAuth) },
{ kOID_KeyPurpose_ClientAuth, sOID_KeyPurpose_ClientAuth, sizeof(sOID_KeyPurpose_ClientAuth) },
{ kOID_KeyPurpose_CodeSigning, sOID_KeyPurpose_CodeSigning, sizeof(sOID_KeyPurpose_CodeSigning) },
{ kOID_KeyPurpose_EmailProtection, sOID_KeyPurpose_EmailProtection, sizeof(sOID_KeyPurpose_EmailProtection) },
{ kOID_KeyPurpose_TimeStamping, sOID_KeyPurpose_TimeStamping, sizeof(sOID_KeyPurpose_TimeStamping) },
{ kOID_KeyPurpose_OCSPSigning, sOID_KeyPurpose_OCSPSigning, sizeof(sOID_KeyPurpose_OCSPSigning) },
{ kOID_NotSpecified, NULL, 0 }
};
const size_t sOIDTableSize = sizeof(sOIDTable) / sizeof(OIDTableEntry);
#endif // ASN1_DEFINE_OID_TABLE
#ifdef ASN1_DEFINE_OID_NAME_TABLE
const OIDNameTableEntry sOIDNameTable[] =
{
{ kOID_PubKeyAlgo_ECPublicKey, \"ECPublicKey\" },
{ kOID_SigAlgo_ECDSAWithSHA256, \"ECDSAWithSHA256\" },
{ kOID_AttributeType_CommonName, \"CommonName\" },
{ kOID_AttributeType_Surname, \"Surname\" },
{ kOID_AttributeType_SerialNumber, \"SerialNumber\" },
{ kOID_AttributeType_CountryName, \"CountryName\" },
{ kOID_AttributeType_LocalityName, \"LocalityName\" },
{ kOID_AttributeType_StateOrProvinceName, \"StateOrProvinceName\" },
{ kOID_AttributeType_OrganizationName, \"OrganizationName\" },
{ kOID_AttributeType_OrganizationalUnitName, \"OrganizationalUnitName\" },
{ kOID_AttributeType_Title, \"Title\" },
{ kOID_AttributeType_Name, \"Name\" },
{ kOID_AttributeType_GivenName, \"GivenName\" },
{ kOID_AttributeType_Initials, \"Initials\" },
{ kOID_AttributeType_GenerationQualifier, \"GenerationQualifier\" },
{ kOID_AttributeType_DNQualifier, \"DNQualifier\" },
{ kOID_AttributeType_Pseudonym, \"Pseudonym\" },
{ kOID_AttributeType_DomainComponent, \"DomainComponent\" },
{ kOID_AttributeType_MatterNodeId, \"MatterNodeId\" },
{ kOID_AttributeType_MatterFirmwareSigningId, \"MatterFirmwareSigningId\" },
{ kOID_AttributeType_MatterICACId, \"MatterICACId\" },
{ kOID_AttributeType_MatterRCACId, \"MatterRCACId\" },
{ kOID_AttributeType_MatterFabricId, \"MatterFabricId\" },
{ kOID_AttributeType_MatterCASEAuthTag, \"MatterCASEAuthTag\" },
{ kOID_EllipticCurve_prime256v1, \"prime256v1\" },
{ kOID_Extension_BasicConstraints, \"BasicConstraints\" },
{ kOID_Extension_KeyUsage, \"KeyUsage\" },
{ kOID_Extension_ExtendedKeyUsage, \"ExtendedKeyUsage\" },
{ kOID_Extension_SubjectKeyIdentifier, \"SubjectKeyIdentifier\" },
{ kOID_Extension_AuthorityKeyIdentifier, \"AuthorityKeyIdentifier\" },
{ kOID_Extension_CSRRequest, \"CSRRequest\" },
{ kOID_KeyPurpose_ServerAuth, \"ServerAuth\" },
{ kOID_KeyPurpose_ClientAuth, \"ClientAuth\" },
{ kOID_KeyPurpose_CodeSigning, \"CodeSigning\" },
{ kOID_KeyPurpose_EmailProtection, \"EmailProtection\" },
{ kOID_KeyPurpose_TimeStamping, \"TimeStamping\" },
{ kOID_KeyPurpose_OCSPSigning, \"OCSPSigning\" },
{ kOID_NotSpecified, NULL }
};
#endif // ASN1_DEFINE_OID_NAME_TABLE
} // namespace ASN1
} // namespace chip
")
# Generating ble/BleBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ble/BleBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#ifdef CONFIG_ENABLE_CHIPOBLE
#define CONFIG_NETWORK_LAYER_BLE 1
#else
#define CONFIG_NETWORK_LAYER_BLE 0
#endif
#define CHIP_ENABLE_CHIPOBLE_TEST 0
#ifndef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM
#define BLE_PLATFORM_CONFIG_INCLUDE <platform/ESP32/BlePlatformConfig.h>
#endif
")
# Generating core/CHIPBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/core/CHIPBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#define CHIP_FUZZING_ENABLED 0
#ifdef CONFIG_BUILD_CHIP_TESTS
#define CHIP_CONFIG_TEST 1
#else
#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_CONFIG_LOG_MESSAGE_MAX_SIZE 256
#define CHIP_AUTOMATION_LOGGING (CONFIG_LOG_DEFAULT_LEVEL >= 5)
#define CHIP_PW_TOKENIZER_LOGGING 0
#define CHIP_USE_PW_LOGGING 0
#define CHIP_CONFIG_SHORT_ERROR_STR 1
#define CHIP_CONFIG_ENABLE_ARG_PARSER 1
#define CHIP_TARGET_STYLE_UNIX 0
#define CHIP_TARGET_STYLE_EMBEDDED 1
#define CHIP_CONFIG_MEMORY_MGMT_MALLOC 1
#define HAVE_MALLOC 1
#define HAVE_FREE 1
#define HAVE_NEW 0
#define CHIP_CONFIG_MEMORY_MGMT_PLATFORM 0
#define CHIP_CONFIG_MEMORY_DEBUG_CHECKS 0
#define CHIP_CONFIG_MEMORY_DEBUG_DMALLOC 0
#define CHIP_CONFIG_PROVIDE_OBSOLESCENT_INTERFACES 0
#define CHIP_CONFIG_TRANSPORT_TRACE_ENABLED 0
#define CHIP_CONFIG_TRANSPORT_PW_TRACE_ENABLED 0
#define CHIP_CONFIG_MINMDNS_DYNAMIC_OPERATIONAL_RESPONDER_LIST 0
#define CHIP_CONFIG_MINMDNS_MAX_PARALLEL_RESOLVES 2
#define CHIP_CONFIG_CANCELABLE_HAS_INFO_STRING_FIELD 0
#define CHIP_CONFIG_BIG_ENDIAN_TARGET 0
")
# Generating crypto/CryptoBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/crypto/CryptoBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#define CHIP_CRYPTO_MBEDTLS 1
#define CHIP_CRYPTO_PSA 0
#define CHIP_CRYPTO_OPENSSL 0
#define CHIP_CRYPTO_BORINGSSL 0
#define CHIP_CRYPTO_PLATFORM 0
")
# Generating inet/InetBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/inet/InetBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#define INET_CONFIG_TEST 0
#ifdef CONFIG_DISABLE_IPV4
#define INET_CONFIG_ENABLE_IPV4 0
#else
#define INET_CONFIG_ENABLE_IPV4 1
#endif
#define INET_CONFIG_ENABLE_TCP_ENDPOINT 1
#define INET_CONFIG_ENABLE_UDP_ENDPOINT 1
#define HAVE_LWIP_RAW_BIND_NETIF 1
#ifndef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM
#define INET_PLATFORM_CONFIG_INCLUDE <platform/ESP32/InetPlatformConfig.h>
#endif
#define INET_TCP_END_POINT_IMPL_CONFIG_FILE <inet/TCPEndPointImplLwIP.h>
#define INET_UDP_END_POINT_IMPL_CONFIG_FILE <inet/UDPEndPointImplLwIP.h>
")
# Generating lwip/lwip_buildconfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lwip/lwip_buildconfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#define HAVE_LWIP_UDP_BIND_NETIF 1
")
# Generating matter/tracing/build_config.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/matter/tracing/build_config.h
"#pragma once\n
#include <sdkconfig.h>\n
#ifdef CONFIG_ENABLE_ESP_INSIGHTS_TRACE
#define MATTER_TRACING_ENABLED 1
#else
#define MATTER_TRACING_ENABLED 0
#endif
")
# Generating platform/CHIPDeviceBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/platform/CHIPDeviceBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\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
#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
#ifdef CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM
#define CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE <platform/ESP32_custom/CHIPDevicePlatformConfig.h>
#define BLE_PLATFORM_CONFIG_INCLUDE <platform/ESP32_custom/BlePlatformConfig.h>
#define CHIP_PLATFORM_CONFIG_INCLUDE <platform/ESP32_custom/CHIPPlatformConfig.h>
#define SYSTEM_PLATFORM_CONFIG_INCLUDE <platform/ESP32_custom/SystemPlatformConfig.h>
#define CHIP_DEVICE_LAYER_TARGET ESP32_custom
#else
#define CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE <platform/ESP32/CHIPDevicePlatformConfig.h>
#define CHIP_DEVICE_LAYER_TARGET ESP32
#endif
#define CHIP_DEVICE_CONFIG_MAX_DISCOVERED_IP_ADDRESSES 5
")
# Generating setup_payload/CHIPAdditionalDataPayloadBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/setup_payload/CHIPAdditionalDataPayloadBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#ifdef CONFIG_ENABLE_ROTATING_DEVICE_ID
#define CHIP_ENABLE_ROTATING_DEVICE_ID 1
#else
#define CHIP_ENABLE_ROTATING_DEVICE_ID 0
#endif
")
# Generating system/SystemBuildConfig.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/system/SystemBuildConfig.h
"#pragma once\n
#include <sdkconfig.h>\n
#define CONFIG_DEVICE_LAYER 1
#ifdef CONFIG_BUILD_CHIP_TESTS
#define CHIP_SYSTEM_CONFIG_TEST 1
#define CHIP_WITH_NLFAULTINJECTION 1
#else
#define CHIP_SYSTEM_CONFIG_TEST 0
#define CHIP_WITH_NLFAULTINJECTION 0
#endif
#define CHIP_SYSTEM_CONFIG_USE_DISPATCH 0
#define CHIP_SYSTEM_CONFIG_USE_LIBEV 0
#define CHIP_SYSTEM_CONFIG_USE_LWIP 1
#define CHIP_SYSTEM_CONFIG_USE_OPEN_THREAD_ENDPOINT 0
#define CHIP_SYSTEM_CONFIG_USE_SOCKETS 0
#define CHIP_SYSTEM_CONFIG_USE_NETWORK_FRAMEWORK 0
#define CHIP_SYSTEM_CONFIG_POSIX_LOCKING 0
#define CHIP_SYSTEM_CONFIG_FREERTOS_LOCKING 1
#define CHIP_SYSTEM_CONFIG_MBED_LOCKING 0
#define CHIP_SYSTEM_CONFIG_CMSIS_RTOS_LOCKING 0
#define CHIP_SYSTEM_CONFIG_ZEPHYR_LOCKING 0
#define CHIP_SYSTEM_CONFIG_NO_LOCKING 0
#define CHIP_SYSTEM_CONFIG_PROVIDE_STATISTICS 1
#define HAVE_CLOCK_GETTIME 1
#define HAVE_CLOCK_SETTIME 1
#define HAVE_GETTIMEOFDAY 0
#define HAVE_SYS_TIME_H 1
#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 <platform/ESP32/CHIPPlatformConfig.h>
#define SYSTEM_PLATFORM_CONFIG_INCLUDE <platform/ESP32/SystemPlatformConfig.h>
#endif
#define CHIP_SYSTEM_LAYER_IMPL_CONFIG_FILE <system/SystemLayerImplFreeRTOS.h>
#define CHIP_SYSTEM_CONFIG_MULTICAST_HOMING 0
")
# Generating CHIPVersion.h
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CHIPVersion.h
"/*
*
* Copyright (c) 2020 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the \"License\");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an \"AS IS\" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* \@file
* This file defines constants and macros for introspecting and
* manipulating CHIP versions.
*
* The constants and macros defined here may be used to, for ,
* example, conditionally-compile older, newer, or changed CHIP
* APIs based on the CHIP version. For example:
*
* \@code
* #if CHIP_VERSION_CODE >= CHIP_VERSION_CODE_ENCODE(1, 5, 0)
* ...
* #else
* ...
* #endif
* \@endcode
*
*/
#pragma once
#define _CHIP_VERSION_CODE_MAJOR_WIDTH 8
#define _CHIP_VERSION_CODE_MINOR_WIDTH 8
#define _CHIP_VERSION_CODE_PATCH_WIDTH 8
#define _CHIP_VERSION_CODE_MAJOR_MASK ((1 << _CHIP_VERSION_CODE_MAJOR_WIDTH) - 1)
#define _CHIP_VERSION_CODE_MINOR_MASK ((1 << _CHIP_VERSION_CODE_MINOR_WIDTH) - 1)
#define _CHIP_VERSION_CODE_PATCH_MASK ((1 << _CHIP_VERSION_CODE_PATCH_WIDTH) - 1)
#define _CHIP_VERSION_CODE_MAJOR_SHIFT 24
#define _CHIP_VERSION_CODE_MINOR_SHIFT 16
#define _CHIP_VERSION_CODE_PATCH_SHIFT 8
/**
* \@def CHIP_VERSION_CODE_ENCODE(major, minor, patch)
*
* \@brief
* Encode a CHIP version code from its constituent \@a major, \@a minor, and \@a patch
* components.
*
* This macro may be used in conjunction with CHIP_VERSION_CODE to, for
* example, conditionally-compile older, newer, or changed CHIP APIs based
* on the CHIP version. For example:
*
* \@code
* #if CHIP_VERSION_CODE >= CHIP_VERSION_CODE_ENCODE(1, 5, 0)
* ...
* #else
* ...
* #endif
* \@endcode
*
*/
#define CHIP_VERSION_CODE_ENCODE(major, minor, patch) \
((((major) & _CHIP_VERSION_CODE_MAJOR_MASK) << _CHIP_VERSION_CODE_MAJOR_SHIFT) | \
(((minor) & _CHIP_VERSION_CODE_MINOR_MASK) << _CHIP_VERSION_CODE_MINOR_SHIFT) | \
(((patch) & _CHIP_VERSION_CODE_PATCH_MASK) << _CHIP_VERSION_CODE_PATCH_SHIFT))
/**
* \@def CHIP_VERSION_CODE_DECODE_MAJOR(code)
*
* \@brief
* Decode a CHIP major version component from a CHIP version \@a code.
*
*/
#define CHIP_VERSION_CODE_DECODE_MAJOR(code) (((code) >> _CHIP_VERSION_CODE_MAJOR_SHIFT) & _CHIP_VERSION_CODE_MAJOR_MASK)
/**
* \@def CHIP_VERSION_CODE_DECODE_MINOR(code)
*
* \@brief
* Decode a CHIP minor version component from a CHIP version \@a code.
*
*/
#define CHIP_VERSION_CODE_DECODE_MINOR(code) (((code) >> _CHIP_VERSION_CODE_MINOR_SHIFT) & _CHIP_VERSION_CODE_MINOR_MASK)
/**
* \@def CHIP_VERSION_CODE_DECODE_PATCH(code)
*
* \@brief
* Decode a CHIP patch version component from a CHIP version \@a code.
*
*/
#define CHIP_VERSION_CODE_DECODE_PATCH(code) (((code) >> _CHIP_VERSION_CODE_PATCH_SHIFT) & _CHIP_VERSION_CODE_PATCH_MASK)
/**
* \@def CHIP_VERSION_MAJOR
*
* \@brief
* The CHIP version major component, as an unsigned integer.
*
*/
#define CHIP_VERSION_MAJOR 0
/**
* \@def CHIP_VERSION_MINOR
*
* \@brief
* The CHIP version minor component, as an unsigned integer.
*
*/
#define CHIP_VERSION_MINOR 0
/**
* \@def CHIP_VERSION_PATCH
*
* \@brief
* The CHIP version patch component, as an unsigned integer.
*
*/
#define CHIP_VERSION_PATCH 0
/**
* \@def CHIP_VERSION_EXTRA
*
* \@brief
* The CHIP version extra component, as a quoted C string.
*
*/
#define CHIP_VERSION_EXTRA \"\"
/**
* \@def CHIP_VERSION_STRING
*
* \@brief
* The CHIP version, as a quoted C string.
*
*/
#define CHIP_VERSION_STRING \"0.0.0\"
/**
* \@def CHIP_VERSION_CODE
*
* \@brief
* The CHIP version, including the major, minor, and patch components,
* encoded as an unsigned integer.
*
* This macro may be used in conjunction with CHIP_VERSION_CODE_ENCODE
* to, for example, conditionally-compile older, newer, or changed CHIP
* APIs based on the CHIP version. For example:
*
* \@code
* #if CHIP_VERSION_CODE >= CHIP_VERSION_CODE_ENCODE(1, 5, 0)
* ...
* #else
* ...
* #endif
* \@endcode
*
*/
#define CHIP_VERSION_CODE CHIP_VERSION_CODE_ENCODE(CHIP_VERSION_MAJOR, CHIP_VERSION_MINOR, CHIP_VERSION_PATCH)
")
+94
View File
@@ -0,0 +1,94 @@
## IDF Component Manager Manifest File
version: 0.0.1
description: Espressif's Matter SDK Component
url: https://github.com/espressif/esp-matter
files:
exclude:
- "**/*"
include:
- "./CMakeLists.txt"
- "./Kconfig"
- "./LICENSE"
- "./generate-include-files.cmake"
- "./ota-image.cmake"
- "./README.md"
- "./components/**/*"
- "./connectedhomeip/connectedhomeip/config/esp32/components/chip/Kconfig"
- "./connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake"
- "./connectedhomeip/connectedhomeip/src/access/*.*"
- "./connectedhomeip/connectedhomeip/src/access/examples/*.*"
- "./connectedhomeip/connectedhomeip/src/app/*.*"
- "./connectedhomeip/connectedhomeip/src/app/app-platform/**/*"
- "./connectedhomeip/connectedhomeip/src/app/clusters/**/*"
- "./connectedhomeip/connectedhomeip/src/app/data-model/**/*"
- "./connectedhomeip/connectedhomeip/src/app/dynamic_server/**/*"
- "./connectedhomeip/connectedhomeip/src/app/icd/**/*"
- "./connectedhomeip/connectedhomeip/src/app/MessageDef/**/*"
- "./connectedhomeip/connectedhomeip/src/app/reporting/**/*"
- "./connectedhomeip/connectedhomeip/src/app/server/**/*"
- "./connectedhomeip/connectedhomeip/src/app/util/**/*"
- "./connectedhomeip/connectedhomeip/src/ble/*.*"
- "./connectedhomeip/connectedhomeip/src/controller/*.*"
- "./connectedhomeip/connectedhomeip/src/controller/python/chip/tlv/*.*"
- "./connectedhomeip/connectedhomeip/src/credentials/*.*"
- "./connectedhomeip/connectedhomeip/src/credentials/attestation_verifier/**/*"
- "./connectedhomeip/connectedhomeip/src/credentials/examples/**/*"
- "./connectedhomeip/connectedhomeip/src/credentials/tests/CHIPAttCert_test_vectors.*"
- "./connectedhomeip/connectedhomeip/src/crypto/*.*"
- "./connectedhomeip/connectedhomeip/src/include/**/*"
- "./connectedhomeip/connectedhomeip/src/inet/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/address_resolve/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/asn1/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/core/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/dnssd/**/*"
- "./connectedhomeip/connectedhomeip/src/lib/shell/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/shell/commands/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/support/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/support/logging/*.*"
- "./connectedhomeip/connectedhomeip/src/lib/support/verhoeff/*.*"
- "./connectedhomeip/connectedhomeip/src/messaging/*.*"
- "./connectedhomeip/connectedhomeip/src/platform/*.*"
- "./connectedhomeip/connectedhomeip/src/platform/ESP32/**/*"
- "./connectedhomeip/connectedhomeip/src/platform/logging/*.*"
- "./connectedhomeip/connectedhomeip/src/platform/OpenThread/**/*"
- "./connectedhomeip/connectedhomeip/src/protocols/**/*"
- "./connectedhomeip/connectedhomeip/src/setup_payload/*.*"
- "./connectedhomeip/connectedhomeip/src/system/*.*"
- "./connectedhomeip/connectedhomeip/src/tracing/*.*"
- "./connectedhomeip/connectedhomeip/src/tracing/esp32_trace/**/*"
- "./connectedhomeip/connectedhomeip/src/transport/*.*"
- "./connectedhomeip/connectedhomeip/src/transport/raw/**/*"
- "./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/**/*"
dependencies:
espressif/mdns:
version: "^1.1.0"
rules:
- if: "idf_version >=5.0"
- if: "target != esp32h2"
espressif/esp_secure_cert_mgr:
version: "^2.3.0"
rules:
- if: "idf_version >=4.3"
espressif/esp_encrypted_img:
version: "2.1.0"
require: public
rules:
- if: "idf_version >=4.4"
espressif/esp_insights:
version: "1.0.1"
require: public
# There is an issue with IDF-Component-Manager when ESP Insights is included.
# Issue: https://github.com/project-chip/connectedhomeip/issues/29125
rules:
- if: "idf_version >=5.0"
- if: "target != esp32h2"
espressif/json_parser: "~1.0.0"
espressif/json_generator: "~1.1.0"