diff --git a/components/esp_matter/CMakeLists.txt b/components/esp_matter/CMakeLists.txt index dc958a9c0..ef1d40126 100644 --- a/components/esp_matter/CMakeLists.txt +++ b/components/esp_matter/CMakeLists.txt @@ -1,6 +1,3 @@ -# Get the list of cluster directories present in ${MATTER_SDK_PATH}/src/app/clusters -file(GLOB CLUSTER_DIR_LIST true ${MATTER_SDK_PATH}/src/app/clusters/*) - set(SRC_DIRS_LIST "." "private" "utils" @@ -10,28 +7,37 @@ set(SRC_DIRS_LIST "." "${MATTER_SDK_PATH}/src/app/reporting" ) -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() - set(INCLUDE_DIRS_LIST "." "utils" "${MATTER_SDK_PATH}/zzz_generated/app-common" "${MATTER_SDK_PATH}/third_party/nlfaultinjection/include" "${MATTER_SDK_PATH}/src") +set(EXCLUDE_SRCS_LIST ) + if (CONFIG_ESP_MATTER_ENABLE_DATA_MODEL) + # Get the list of cluster directories present in ${MATTER_SDK_PATH}/src/app/clusters + 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 "zap_common/app") list(APPEND INCLUDE_DIRS_LIST "zap_common") +else() + # Do not add all the clusters srcs to esp_matter 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() set(REQUIRES_LIST chip bt esp_matter_console nvs_flash app_update esp_secure_cert_mgr mbedtls esp_system openthread json) idf_component_register( SRC_DIRS ${SRC_DIRS_LIST} INCLUDE_DIRS ${INCLUDE_DIRS_LIST} + EXCLUDE_SRCS ${EXCLUDE_SRCS_LIST} PRIV_INCLUDE_DIRS "private" REQUIRES ${REQUIRES_LIST}) diff --git a/examples/zap_light/CMakeLists.txt b/examples/zap_light/CMakeLists.txt index c4da0f69e..d97cda3ae 100644 --- a/examples/zap_light/CMakeLists.txt +++ b/examples/zap_light/CMakeLists.txt @@ -52,33 +52,3 @@ idf_build_set_property(C_COMPILE_OPTIONS "-Os" APPEND) # For RISCV chips, project_include.cmake sets -Wno-format, but does not clear various # flags that depend on -Wformat idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-security" APPEND) - -# The zap generated files don't define these ENDPOINT_COUNTs -# Set these COUNTs 1 to avoid compilation errors -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_ACCOUNT_LOGIN_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_APPLICATION_BASIC_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_APPLICATION_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_AUDIO_OUTPUT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_CONTENT_LAUNCHER_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_CHANNEL_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_DOOR_LOCK_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_LOW_POWER_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_MEDIA_INPUT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_KEYPAD_INPUT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_MEDIA_PLAYBACK_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_TARGET_NAVIGATOR_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_WAKE_ON_LAN_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_WINDOW_COVERING_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_FAN_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_DISHWASHER_ALARM_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_LAUNDRY_WASHER_CONTROLS_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_SAMPLE_MEI_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_CONTENT_APP_OBSERVER_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_CONTENT_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_LAUNDRY_DRYER_CONTROLS_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_BOOLEAN_STATE_CONFIGURATION_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_MESSAGES_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) -idf_build_set_property(CXX_COMPILE_OPTIONS "-DMATTER_DM_THERMOSTAT_CLUSTER_SERVER_ENDPOINT_COUNT=1" APPEND) diff --git a/examples/zap_light/main/CMakeLists.txt b/examples/zap_light/main/CMakeLists.txt index 5ad541895..fc8456960 100644 --- a/examples/zap_light/main/CMakeLists.txt +++ b/examples/zap_light/main/CMakeLists.txt @@ -1,4 +1,34 @@ idf_component_register(SRC_DIRS "." + "${MATTER_SDK_PATH}/src/app/clusters/access-control-server" + "${MATTER_SDK_PATH}/src/app/clusters/administrator-commissioning-server" + "${MATTER_SDK_PATH}/src/app/clusters/basic-information" + "${MATTER_SDK_PATH}/src/app/clusters/bindings" + "${MATTER_SDK_PATH}/src/app/clusters/color-control-server" + "${MATTER_SDK_PATH}/src/app/clusters/descriptor" + "${MATTER_SDK_PATH}/src/app/clusters/diagnostic-logs-server" + "${MATTER_SDK_PATH}/src/app/clusters/ethernet-network-diagnostics-server" + "${MATTER_SDK_PATH}/src/app/clusters/fixed-label-server" + "${MATTER_SDK_PATH}/src/app/clusters/general-commissioning-server" + "${MATTER_SDK_PATH}/src/app/clusters/general-diagnostics-server" + "${MATTER_SDK_PATH}/src/app/clusters/group-key-mgmt-server" + "${MATTER_SDK_PATH}/src/app/clusters/groups-server" + "${MATTER_SDK_PATH}/src/app/clusters/identify-server" + "${MATTER_SDK_PATH}/src/app/clusters/level-control" + "${MATTER_SDK_PATH}/src/app/clusters/localization-configuration-server" + "${MATTER_SDK_PATH}/src/app/clusters/network-commissioning" + "${MATTER_SDK_PATH}/src/app/clusters/occupancy-sensor-server" + "${MATTER_SDK_PATH}/src/app/clusters/on-off-server" + "${MATTER_SDK_PATH}/src/app/clusters/operational-credentials-server" + "${MATTER_SDK_PATH}/src/app/clusters/ota-requestor" + "${MATTER_SDK_PATH}/src/app/clusters/scenes-server" + "${MATTER_SDK_PATH}/src/app/clusters/software-diagnostics-server" + "${MATTER_SDK_PATH}/src/app/clusters/switch-server" + "${MATTER_SDK_PATH}/src/app/clusters/thread-network-diagnostics-server" + "${MATTER_SDK_PATH}/src/app/clusters/time-format-localization-server" + "${MATTER_SDK_PATH}/src/app/clusters/user-label-server" + "${MATTER_SDK_PATH}/src/app/clusters/wifi-network-diagnostics-server" + "${MATTER_SDK_PATH}/src/app/util" + "${MATTER_SDK_PATH}/zzz_generated/app-common/app-common/zap-generated/attributes" PRIV_INCLUDE_DIRS "." "${ESP_MATTER_PATH}/examples/common/utils") # We must set CHIP_ROOT to include esp32_codegen.cmake