11get_filename_component (MATTER_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR} /connectedhomeip/connectedhomeip/ REALPATH)
22
33get_filename_component (CHIP_ROOT ${CMAKE_CURRENT_LIST_DIR} /connectedhomeip/connectedhomeip/ REALPATH)
4- include (${CMAKE_CURRENT_LIST_DIR} /connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake)
54
65set (ESP_COMPONENTS_PATH ${CMAKE_CURRENT_SOURCE_DIR} /components)
76
@@ -27,6 +26,7 @@ endfunction()
2726set (SRC_DIRS_LIST "${MATTER_SDK_PATH} /src/access"
2827 "${MATTER_SDK_PATH} /src/access/examples"
2928 "${MATTER_SDK_PATH} /src/app"
29+ "${MATTER_SDK_PATH} /src/app/data-model"
3030 "${MATTER_SDK_PATH} /src/app/MessageDef"
3131 "${MATTER_SDK_PATH} /src/app/reporting"
3232 "${MATTER_SDK_PATH} /src/app/server"
@@ -54,6 +54,7 @@ set(SRC_DIRS_LIST "${MATTER_SDK_PATH}/src/access"
5454 "${MATTER_SDK_PATH} /src/protocols"
5555 "${MATTER_SDK_PATH} /src/protocols/bdx"
5656 "${MATTER_SDK_PATH} /src/protocols/echo"
57+ "${MATTER_SDK_PATH} /src/protocols/interaction_model"
5758 "${MATTER_SDK_PATH} /src/protocols/secure_channel"
5859 "${MATTER_SDK_PATH} /src/protocols/user_directed_commissioning"
5960 "${MATTER_SDK_PATH} /src/setup_payload"
@@ -111,6 +112,7 @@ set(EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH}/src/controller/ExamplePersistentStorag
111112 "${MATTER_SDK_PATH} /src/lib/shell/commands/NFC.cpp"
112113 "${MATTER_SDK_PATH} /src/platform/DeviceSafeQueue.cpp"
113114 "${MATTER_SDK_PATH} /src/platform/SyscallStubs.cpp"
115+ "${MATTER_SDK_PATH} /src/platform/OpenThread/DnssdImpl.cpp"
114116 "${MATTER_SDK_PATH} /src/platform/OpenThread/GenericThreadStackManagerImpl_OpenThread_LwIP.cpp"
115117 "${MATTER_SDK_PATH} /src/system/SystemLayerImplSelect.cpp"
116118 "${MATTER_SDK_PATH} /src/transport/TraceMessage.cpp" )
@@ -254,8 +256,7 @@ if((NOT CONFIG_ENABLE_WIFI_STATION) AND (NOT CONFIG_ENABLE_WIFI_AP))
254256endif ()
255257
256258if (NOT CONFIG_ENABLE_MATTER_OVER_THREAD)
257- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/OpenThread/DnssdImpl.cpp"
258- "${MATTER_SDK_PATH} /src/platform/OpenThread/GenericNetworkCommissioningThreadDriver.cpp"
259+ list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/OpenThread/GenericNetworkCommissioningThreadDriver.cpp"
259260 "${MATTER_SDK_PATH} /src/platform/OpenThread/OpenThreadUtils.cpp"
260261 "${MATTER_SDK_PATH} /src/platform/OpenThread/OpenThreadDnssdImpl.cpp" )
261262endif ()
@@ -272,7 +273,7 @@ else()
272273 set (CHIP_PROJECT_CONFIG "" )
273274endif ()
274275
275- if (CONFIG_ENABLE_ESP_INSIGHTS_TRACE)
276+ if (CONFIG_ENABLE_ESP_INSIGHTS_TRACE AND ( NOT " ${IDF_TARGET} " STREQUAL "esp32h2" ) )
276277 list (APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH} /src/tracing/esp32_trace" )
277278 list (APPEND INCLUDE_DIRS_LIST "${MATTER_SDK_PATH} /src/tracing/esp32_trace/include"
278279 "${MATTER_SDK_PATH} /src/tracing/esp32_trace" )
@@ -288,8 +289,14 @@ endif()
288289
289290if (CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM)
290291 # check the source file dir if external platform is enable
291- if ((EXISTS ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} /external_platform.cmake))
292- include (${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} /external_platform.cmake)
292+ if (IS_ABSOLUTE ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} )
293+ get_filename_component (EXTERNAL_PLATFORM_DIR ${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} REALPATH)
294+ else ()
295+ get_filename_component (EXTERNAL_PLATFORM_DIR ${CMAKE_SOURCE_DIR} /${CONFIG_CHIP_EXTERNAL_PLATFORM_DIR} REALPATH)
296+ endif ()
297+ message ("EXTERNAL_PLATFORM_DIR: ${EXTERNAL_PLATFORM_DIR} " )
298+ if ((EXISTS ${EXTERNAL_PLATFORM_DIR} /external_platform.cmake))
299+ include (${EXTERNAL_PLATFORM_DIR} /external_platform.cmake)
293300 list (APPEND SRC_DIRS_LIST ${EXPLANT_SRC_DIRS_LIST} )
294301 list (APPEND INCLUDE_DIRS_LIST ${EXPLANT_INCLUDE_DIRS_LIST} )
295302 list (APPEND EXCLUDE_SRCS_LIST ${EXPLANT_EXCLUDE_SRCS_LIST} )
@@ -328,17 +335,15 @@ else()
328335 if ((CONFIG_BT_ENABLED) AND (CONFIG_ENABLE_CHIPOBLE))
329336 if (CONFIG_BT_NIMBLE_ENABLED)
330337 list (APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/nimble" )
331- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/bluedroid/BLEManagerImpl.cpp" )
332- if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
333- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/bluedroid/ChipDeviceScanner.cpp" )
338+ if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
339+ list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/ChipDeviceScanner.cpp"
340+ "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/misc.c"
341+ "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/peer.c" )
334342 endif ()
335343 else ()
336344 list (APPEND SRC_DIRS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/bluedroid" )
337- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/BLEManagerImpl.cpp" )
338- if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
339- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/ChipDeviceScanner.cpp"
340- "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/misc.c"
341- "${MATTER_SDK_PATH} /src/platform/ESP32/nimble/peer.c" )
345+ if (NOT CONFIG_ENABLE_ESP32_BLE_CONTROLLER)
346+ list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/bluedroid/ChipDeviceScanner.cpp" )
342347 endif ()
343348 endif ()
344349 endif ()
@@ -362,7 +367,8 @@ else()
362367 endif ()
363368
364369 if (NOT CONFIG_ENABLE_ESP32_DEVICE_INFO_PROVIDER)
365- list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/ESP32DeviceInfoProvider.cpp" )
370+ list (APPEND EXCLUDE_SRCS_LIST "${MATTER_SDK_PATH} /src/platform/ESP32/ESP32DeviceInfoProvider.cpp"
371+ "${MATTER_SDK_PATH} /src/platform/ESP32/StaticESP32DeviceInfoProvider.cpp" )
366372 endif ()
367373
368374 if (NOT CONFIG_SEC_CERT_DAC_PROVIDER)
@@ -394,17 +400,34 @@ idf_component_register(SRC_DIRS ${SRC_DIRS_LIST}
394400
395401target_compile_options (${COMPONENT_LIB} PUBLIC
396402 "-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=<lib/address_resolve/AddressResolve_DefaultImpl.h>"
397- "-DCHIP_CONFIG_SOFTWARE_VERSION_NUMBER=${chip_config_software_version_number} " )
403+ "-DCHIP_CONFIG_SOFTWARE_VERSION_NUMBER=${chip_config_software_version_number} "
404+ "-DNDEBUG" )
398405
399406if (CHIP_PROJECT_CONFIG)
400407 target_compile_options (${COMPONENT_LIB} PUBLIC
401408 "-DCHIP_PROJECT_CONFIG_INCLUDE=${CHIP_PROJECT_CONFIG} "
402409 "-DSYSTEM_PROJECT_CONFIG_INCLUDE=${CHIP_PROJECT_CONFIG} " )
403410endif ()
404411
405- idf_build_set_property(COMPILE_OPTIONS "-Wno-error=uninitialized;-Wno-error=maybe-uninitialized;-Wno-format-nonliteral;-Wno-missing-field-initializers;" APPEND )
406- idf_build_set_property(COMPILE_OPTIONS "-Wno-error=array-bounds" APPEND )
407- idf_build_set_property(COMPILE_OPTIONS "-Wno-write-strings" APPEND )
412+ # compile options from connectedhomeip/build/config/compiler except -Wconversion, -Wshadow, and -Wno-unknown-warning-option
413+ target_compile_options (${COMPONENT_LIB} PRIVATE "-g2;-fno-common;-fno-unwind-tables;-fno-asynchronous-unwind-tables" )
414+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wstack-usage=8192;-Wunreachable-code;-Wvla" )
415+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wformat;-Wformat-nonliteral;-Wformat-security" )
416+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wno-deprecated-declarations;-Wno-unused" )
417+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wno-cast-function-type;-Wno-psabi;-Wno-maybe-uninitialized;-fno-strict-aliasing" )
418+ target_compile_options (${COMPONENT_LIB} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-Wnon-virtual-dtor>)
419+
420+ # link options from connectedhomeip/build/config/compiler
421+ target_link_options (${COMPONENT_LIB} PRIVATE -Wl,-O2 -Wl,--gc-sections -Os -Werror -Wl,--fatal-warnings -fdiagnostics-color)
422+
423+ # compile options from esp-matter/components/
424+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wno-error=uninitialized;-Wno-error=maybe-uninitialized;-Wno-missing-field-initializers" )
425+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wno-error=array-bounds;-Wno-write-strings" )
426+
427+ # TODO: remove this when building connectedhomeip/src/controller/CHIPDeviceController.cpp with no format error
428+ if (CONFIG_ENABLE_CHIP_CONTROLLER_BUILD)
429+ target_compile_options (${COMPONENT_LIB} PRIVATE "-Wno-error=format" )
430+ endif ()
408431
409432# For Xtensa chips, uint32_t was defined as 'unsigned' before v5.0, and after IDF v5.0 it is defined
410433# as 'unsigned long', same as RISC-V. add this compile option to avoid format errors.
@@ -422,9 +445,13 @@ if (CONFIG_USE_MINIMAL_MDNS)
422445 target_compile_options (${COMPONENT_LIB} PUBLIC "-DCHIP_MINMDNS_DEFAULT_POLICY=1"
423446 "-DCHIP_MINMDNS_USE_EPHEMERAL_UNICAST_PORT=0"
424447 "-DCHIP_MINMDNS_HIGH_VERBOSITY=0"
425- "-DCHIP_DNSSD_DEFAULT_MINIMAL=1" )
448+ "-DCHIP_DNSSD_DEFAULT_MINIMAL=true"
449+ "-DCHIP_DNSSD_DEFAULT_NONE=false"
450+ "-DCHIP_DNSSD_DEFAULT_PLATFORM=false" )
426451else ()
427- target_compile_options (${COMPONENT_LIB} PUBLIC "-DCHIP_DNSSD_DEFAULT_PLATFORM=1" )
452+ target_compile_options (${COMPONENT_LIB} PUBLIC "-DCHIP_DNSSD_DEFAULT_PLATFORM=true"
453+ "-DCHIP_DNSSD_DEFAULT_NONE=false"
454+ "-DCHIP_DNSSD_DEFAULT_MINIMAL=false" )
428455endif ()
429456
430457if (NOT CMAKE_BUILD_EARLY_EXPANSION)
@@ -455,13 +482,17 @@ target_link_libraries(${COMPONENT_LIB} INTERFACE -Wl,--start-group
455482 ${chip_libraries}
456483 -Wl,--end -group)
457484
458- # TODO: Build OTA image need a python package, leading a file change and distorying the hash of managed_components.
485+ cmake_policy (GET CMP0007 policy_status)
486+ # Set new CMP0007 policy to prevent cmake warning
487+ cmake_policy (SET CMP0007 NEW)
488+ include (${CMAKE_CURRENT_LIST_DIR} /connectedhomeip/connectedhomeip/config/esp32/components/chip/ota-image.cmake)
459489# Build Matter OTA image
460- if (false AND CONFIG_CHIP_OTA_IMAGE_BUILD)
490+ if (CONFIG_CHIP_OTA_IMAGE_BUILD)
461491 chip_ota_image(chip-ota-image
462492 INPUT_FILES ${BUILD_DIR} /${CMAKE_PROJECT_NAME} .bin
463493 OUTPUT_FILE ${BUILD_DIR} /${CMAKE_PROJECT_NAME} -ota.bin
464494 )
465495 # Adding dependecy as app target so that this runs after images are ready
466496 add_dependencies (chip-ota-image app)
467497endif ()
498+ cmake_policy (SET CMP0007 ${policy_status} )
0 commit comments