Add ICDConfigurationData to app sources when ICD management server cluster is included (#37653)
* Fix ICD management server cluster dependecies
Add ICDConfigurationData to app sources when ICD management server
cluster is included in sample, but ICD support is disabled, e.g.
lock-app on some platforms.
Related to: #32321
Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
* Add TODO comments for #32321
Add TODO comments for issue related to ICD management server.
Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
---------
Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
diff --git a/src/app/chip_data_model.cmake b/src/app/chip_data_model.cmake
index b05fccc..d48c4c4 100644
--- a/src/app/chip_data_model.cmake
+++ b/src/app/chip_data_model.cmake
@@ -24,6 +24,16 @@
function(chip_configure_cluster APP_TARGET CLUSTER)
file(GLOB CLUSTER_SOURCES "${CHIP_APP_BASE_DIR}/clusters/${CLUSTER}/*.cpp")
target_sources(${APP_TARGET} PRIVATE ${CLUSTER_SOURCES})
+
+ # Add clusters dependencies
+ if (CLUSTER STREQUAL "icd-management-server")
+ # TODO(#32321): Remove after issue is resolved
+ # Add ICDConfigurationData when ICD management server cluster is included,
+ # but ICD support is disabled, e.g. lock-app on some platforms
+ if(NOT CONFIG_CHIP_ENABLE_ICD_SUPPORT)
+ target_sources(${APP_TARGET} PRIVATE ${CHIP_APP_BASE_DIR}/icd/server/ICDConfigurationData.cpp)
+ endif()
+ endif()
endfunction()
#
diff --git a/src/app/clusters/icd-management-server/icd-management-server.cpp b/src/app/clusters/icd-management-server/icd-management-server.cpp
index cec4fbd..f99da62 100644
--- a/src/app/clusters/icd-management-server/icd-management-server.cpp
+++ b/src/app/clusters/icd-management-server/icd-management-server.cpp
@@ -466,6 +466,7 @@
bool emberAfIcdManagementClusterStayActiveRequestCallback(CommandHandler * commandObj, const ConcreteCommandPath & commandPath,
const Commands::StayActiveRequest::DecodableType & commandData)
{
+// TODO(#32321): Remove #if after issue is resolved
// Note: We only need this #if statement for platform examples that enable the ICD management server without building the sample
// as an ICD. Since this is not spec compliant, we should remove this #if statement once we stop compiling the ICD management
// server in those examples.