blob: 38e534093d1599c660a9fc738c922f8cb0dd4f5c [file] [log] [blame]
Michael Spangefa630b2020-07-08 22:23:08 -04001# Copyright (c) 2020 Project CHIP Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15import("//build_overrides/chip.gni")
Boris Zbarsky5d663262020-08-27 18:12:39 -040016import("//build_overrides/nlio.gni")
Jeff Tung19cb1a52023-01-26 05:56:05 -080017import("${chip_root}/src/platform/device.gni")
Michael Spange00eac32021-06-21 17:25:47 -040018
19import("${chip_root}/build/chip/buildconfig_header.gni")
Song Guoa77a6622021-01-29 13:13:02 +080020import("common_flags.gni")
mkardous-silabs98282932023-06-05 14:13:46 -040021import("icd/icd.gni")
Michael Spangefa630b2020-07-08 22:23:08 -040022
yunhanw-googled644bb02021-04-13 07:26:17 -070023declare_args() {
24 # Enable strict schema checks.
yunhanw-google751d0dd2022-11-16 19:09:58 -080025 enable_im_pretty_print =
Boris Zbarskyc17d7232022-09-09 12:56:27 -040026 is_debug && (current_os == "linux" || current_os == "mac" ||
27 current_os == "ios" || current_os == "android")
Tennessee Carmel-Veilleux085acd02022-04-13 23:42:22 -040028
29 # Logging verbosity control for Access Control implementation
30 #
31 # If set to > 0, it is desired to get additional logging on all
32 # access control checks for better debugging ability.
33 #
34 # If set to > 1, it is desired to log every single check
35 chip_access_control_policy_logging_verbosity = 0
36 if (is_debug && (current_os == "linux" || current_os == "mac")) {
37 chip_access_control_policy_logging_verbosity = 2
38 }
39
Zang MingJie7dede202022-04-06 11:54:50 +080040 chip_enable_session_resumption = true
Song GUO077e44e2022-04-25 10:16:30 +080041
42 # By default, the resources used by each fabric is unlimited if they are allocated on heap. This flag is for checking the resource usage even when they are allocated on heap to increase code coverage in integration tests.
43 chip_im_force_fabric_quota_check = false
Evgeny Margolisb89e83b2023-02-24 18:20:02 -100044
manjunath-grld9e0c3f2023-05-18 18:33:15 +053045 enable_eventlist_attribute = true
yunhanw-googled644bb02021-04-13 07:26:17 -070046}
47
Michael Spange00eac32021-06-21 17:25:47 -040048buildconfig_header("app_buildconfig") {
49 header = "AppBuildConfig.h"
50 header_dir = "app"
51
Zang MingJie7dede202022-04-06 11:54:50 +080052 defines = [
yunhanw-google751d0dd2022-11-16 19:09:58 -080053 "CHIP_CONFIG_IM_PRETTY_PRINT=${enable_im_pretty_print}",
Song GUO077e44e2022-04-25 10:16:30 +080054 "CHIP_CONFIG_IM_FORCE_FABRIC_QUOTA_CHECK=${chip_im_force_fabric_quota_check}",
Zang MingJie7dede202022-04-06 11:54:50 +080055 "CHIP_CONFIG_ENABLE_SESSION_RESUMPTION=${chip_enable_session_resumption}",
Tennessee Carmel-Veilleux085acd02022-04-13 23:42:22 -040056 "CHIP_CONFIG_ACCESS_CONTROL_POLICY_LOGGING_VERBOSITY=${chip_access_control_policy_logging_verbosity}",
Jeff Tung19cb1a52023-01-26 05:56:05 -080057 "CHIP_CONFIG_PERSIST_SUBSCRIPTIONS=${chip_persist_subscriptions}",
Evgeny Margolisb89e83b2023-02-24 18:20:02 -100058 "CHIP_CONFIG_ENABLE_EVENTLIST_ATTRIBUTE=${enable_eventlist_attribute}",
Zang MingJie7dede202022-04-06 11:54:50 +080059 ]
Michael Spangefa630b2020-07-08 22:23:08 -040060}
61
Daniel Nicoara641e3ad2022-07-25 15:32:03 -040062source_set("app_config") {
63 sources = [ "AppConfig.h" ]
64
65 public_deps = [ ":app_buildconfig" ]
66}
67
Rob Walkerb14e3e32020-08-20 13:59:22 -070068static_library("app") {
69 output_name = "libCHIPDataModel"
Michael Spangefa630b2020-07-08 22:23:08 -040070
71 sources = [
Song GUObfdbd452021-12-06 15:53:34 +080072 "AttributeAccessInterface.cpp",
Song GUO09736d32021-11-12 21:57:10 +080073 "AttributePathExpandIterator.cpp",
74 "AttributePathExpandIterator.h",
Song GUO09736d32021-11-12 21:57:10 +080075 "AttributePathParams.h",
Boris Zbarskyec713462022-01-06 15:53:22 -050076 "AttributePersistenceProvider.h",
Jerry Johns55349a52021-11-20 01:33:41 -080077 "BufferedReadCallback.cpp",
Jiacheng Guoaba3c812021-12-09 02:18:03 +080078 "CASEClient.cpp",
79 "CASEClient.h",
80 "CASEClientPool.h",
Pankaj Gargeb84a9d2021-11-16 13:59:57 -080081 "CASESessionManager.cpp",
82 "CASESessionManager.h",
Song GUO56634bf2022-02-10 09:08:23 +080083 "ChunkedWriteCallback.cpp",
84 "ChunkedWriteCallback.h",
Jerry Johns964adbc2022-04-14 16:42:04 -070085 "ClusterStateCache.cpp",
86 "ClusterStateCache.h",
yunhanw-googlee430b1d2021-01-06 06:12:46 -080087 "CommandHandler.cpp",
Hui.Li-TCL20dea722022-01-12 07:22:47 +080088 "CommandResponseHelper.h",
yunhanw-googlee430b1d2021-01-06 06:12:46 -080089 "CommandSender.cpp",
Boris Zbarskyec713462022-01-06 15:53:22 -050090 "DefaultAttributePersistenceProvider.cpp",
Damian Królik1ee863e2022-11-05 15:51:18 +010091 "DeferredAttributePersistenceProvider.cpp",
Pankaj Garga04576d2021-11-08 15:04:13 -080092 "DeviceProxy.cpp",
93 "DeviceProxy.h",
yunhanw-googleef040a72021-05-05 07:17:56 -070094 "EventManagement.cpp",
yunhanw-googlec79b67b2021-11-24 20:58:19 -080095 "EventPathParams.h",
Tennessee Carmel-Veilleuxb91727b2022-06-28 20:52:02 -040096 "FailSafeContext.cpp",
97 "FailSafeContext.h",
Boris Zbarskye76c2272022-02-14 21:56:25 -050098 "GlobalAttributes.h",
yunhanw-googlee430b1d2021-01-06 06:12:46 -080099 "InteractionModelEngine.cpp",
yunhanw-google86b7b7f2022-01-28 16:53:51 -0800100 "InteractionModelRevision.h",
Boris Zbarsky0a6a0122022-02-01 08:50:23 -0500101 "InteractionModelTimeout.h",
yunhanw-google7898b532021-11-01 09:52:46 -0700102 "MessageDef/ArrayBuilder.cpp",
103 "MessageDef/ArrayParser.cpp",
yunhanw-googleb717b362021-11-08 13:34:19 -0800104 "MessageDef/AttributeDataIB.cpp",
105 "MessageDef/AttributeDataIB.h",
106 "MessageDef/AttributeDataIBs.cpp",
107 "MessageDef/AttributeDataIBs.h",
yunhanw-google64ffda02021-11-04 18:05:36 -0700108 "MessageDef/AttributePathIB.cpp",
109 "MessageDef/AttributePathIB.h",
yunhanw-googleb717b362021-11-08 13:34:19 -0800110 "MessageDef/AttributePathIBs.cpp",
111 "MessageDef/AttributePathIBs.h",
112 "MessageDef/AttributeReportIB.cpp",
113 "MessageDef/AttributeReportIB.h",
114 "MessageDef/AttributeReportIBs.cpp",
115 "MessageDef/AttributeReportIBs.h",
yunhanw-google35e67172021-10-11 17:12:06 -0700116 "MessageDef/AttributeStatusIB.cpp",
117 "MessageDef/AttributeStatusIB.h",
yunhanw-googlef1117272021-12-02 19:59:44 -0800118 "MessageDef/AttributeStatusIBs.cpp",
119 "MessageDef/AttributeStatusIBs.h",
yunhanw-google0c183552021-01-22 09:12:14 -0800120 "MessageDef/Builder.cpp",
121 "MessageDef/Builder.h",
yunhanw-googlea1cb3412021-12-06 13:32:40 -0800122 "MessageDef/ClusterPathIB.cpp",
123 "MessageDef/ClusterPathIB.h",
yunhanw-google67f74a32021-10-21 12:15:08 -0700124 "MessageDef/CommandDataIB.cpp",
yunhanw-google8c2638c2021-10-20 16:33:42 -0700125 "MessageDef/CommandPathIB.cpp",
yunhanw-google36e61e32021-11-02 08:31:34 -0700126 "MessageDef/CommandStatusIB.cpp",
yunhanw-googlea1cb3412021-12-06 13:32:40 -0800127 "MessageDef/DataVersionFilterIB.cpp",
128 "MessageDef/DataVersionFilterIB.h",
129 "MessageDef/DataVersionFilterIBs.cpp",
130 "MessageDef/DataVersionFilterIBs.h",
yunhanw-google3bec0f92021-11-03 16:12:39 -0700131 "MessageDef/EventDataIB.cpp",
132 "MessageDef/EventDataIB.h",
yunhanw-googlebf585f82021-10-29 19:20:07 -0700133 "MessageDef/EventFilterIB.cpp",
yunhanw-googlef1117272021-12-02 19:59:44 -0800134 "MessageDef/EventFilterIBs.cpp",
yunhanw-google2fe90242021-11-01 15:13:44 -0700135 "MessageDef/EventPathIB.cpp",
136 "MessageDef/EventPathIB.h",
yunhanw-googlef1117272021-12-02 19:59:44 -0800137 "MessageDef/EventPathIBs.cpp",
138 "MessageDef/EventPathIBs.h",
yunhanw-google3bec0f92021-11-03 16:12:39 -0700139 "MessageDef/EventReportIB.cpp",
140 "MessageDef/EventReportIB.h",
yunhanw-googlef1117272021-12-02 19:59:44 -0800141 "MessageDef/EventReportIBs.cpp",
142 "MessageDef/EventReportIBs.h",
yunhanw-google1f6c6e62021-11-02 10:09:53 -0700143 "MessageDef/EventStatusIB.cpp",
144 "MessageDef/EventStatusIB.h",
yunhanw-google36e61e32021-11-02 08:31:34 -0700145 "MessageDef/InvokeRequestMessage.cpp",
146 "MessageDef/InvokeRequests.cpp",
147 "MessageDef/InvokeResponseIB.cpp",
yunhanw-googlef1117272021-12-02 19:59:44 -0800148 "MessageDef/InvokeResponseIBs.cpp",
yunhanw-google36e61e32021-11-02 08:31:34 -0700149 "MessageDef/InvokeResponseMessage.cpp",
yunhanw-google0c183552021-01-22 09:12:14 -0800150 "MessageDef/ListBuilder.cpp",
yunhanw-google0c183552021-01-22 09:12:14 -0800151 "MessageDef/ListParser.cpp",
yunhanw-google86b7b7f2022-01-28 16:53:51 -0800152 "MessageDef/MessageBuilder.cpp",
153 "MessageDef/MessageBuilder.h",
yunhanw-googlee4c01152021-04-16 08:22:10 -0700154 "MessageDef/MessageDefHelper.cpp",
yunhanw-google0c183552021-01-22 09:12:14 -0800155 "MessageDef/MessageDefHelper.h",
yunhanw-google86b7b7f2022-01-28 16:53:51 -0800156 "MessageDef/MessageParser.cpp",
157 "MessageDef/MessageParser.h",
yunhanw-google0c183552021-01-22 09:12:14 -0800158 "MessageDef/Parser.cpp",
159 "MessageDef/Parser.h",
yunhanw-google12ec7022021-11-01 19:53:29 -0700160 "MessageDef/ReadRequestMessage.cpp",
161 "MessageDef/ReadRequestMessage.h",
162 "MessageDef/ReportDataMessage.cpp",
163 "MessageDef/ReportDataMessage.h",
yunhanw-google35e67172021-10-11 17:12:06 -0700164 "MessageDef/StatusIB.cpp",
165 "MessageDef/StatusIB.h",
yunhanw-google12ec7022021-11-01 19:53:29 -0700166 "MessageDef/StatusResponseMessage.cpp",
yunhanw-google7898b532021-11-01 09:52:46 -0700167 "MessageDef/StructBuilder.cpp",
168 "MessageDef/StructParser.cpp",
yunhanw-google12ec7022021-11-01 19:53:29 -0700169 "MessageDef/SubscribeRequestMessage.cpp",
170 "MessageDef/SubscribeResponseMessage.cpp",
yunhanw-google7f05fb62021-10-29 06:55:58 -0700171 "MessageDef/TimedRequestMessage.cpp",
yunhanw-google12ec7022021-11-01 19:53:29 -0700172 "MessageDef/WriteRequestMessage.cpp",
173 "MessageDef/WriteResponseMessage.cpp",
Shubham Patil47cf0692022-03-31 08:49:01 +0530174 "OTAUserConsentCommon.h",
Terence Hampsonb6859d72022-08-05 13:48:11 -0400175 "OperationalSessionSetup.cpp",
176 "OperationalSessionSetup.h",
177 "OperationalSessionSetupPool.h",
yunhanw-google08566242021-03-18 15:29:39 -0700178 "ReadClient.cpp",
179 "ReadHandler.cpp",
Marc Lepage2c4de1b2022-01-27 13:25:46 -0500180 "RequiredPrivilege.cpp",
181 "RequiredPrivilege.h",
yunhanw-googleb5dbad12021-11-16 16:46:37 -0800182 "StatusResponse.cpp",
183 "StatusResponse.h",
Jeff Tung37919a12023-01-20 17:58:51 -0800184 "SubscriptionResumptionStorage.h",
Boris Zbarskyffee2a92021-12-01 14:34:57 -0500185 "TimedHandler.cpp",
186 "TimedHandler.h",
Boris Zbarsky3397fdc2021-12-06 14:01:12 -0500187 "TimedRequest.cpp",
188 "TimedRequest.h",
yunhanw-google6c044e52021-06-18 13:01:52 -0700189 "WriteClient.cpp",
190 "WriteHandler.cpp",
yunhanw-googlededd3d02021-04-08 05:51:34 -0700191 "reporting/Engine.cpp",
Michael Spanga08f8262021-04-23 18:06:20 -0400192 "reporting/Engine.h",
Boris Zbarsky95d337c2022-11-18 01:30:16 -0500193 "reporting/reporting.h",
Michael Spangefa630b2020-07-08 22:23:08 -0400194 ]
195
Jeff Tung19cb1a52023-01-26 05:56:05 -0800196 if (chip_persist_subscriptions) {
197 sources += [
198 "SimpleSubscriptionResumptionStorage.cpp",
199 "SimpleSubscriptionResumptionStorage.h",
200 ]
201 }
202
Michael Spangefa630b2020-07-08 22:23:08 -0400203 public_deps = [
Daniel Nicoara641e3ad2022-07-25 15:32:03 -0400204 ":app_config",
Marc Lepage78719532021-12-06 23:01:50 -0500205 "${chip_root}/src/access",
Andrei Litvin5a288652022-03-11 16:23:36 -0500206 "${chip_root}/src/lib/address_resolve",
Michael Spangefa630b2020-07-08 22:23:08 -0400207 "${chip_root}/src/lib/support",
yunhanw-googlee430b1d2021-01-06 06:12:46 -0800208 "${chip_root}/src/messaging",
yunhanw-google9c056ef2021-08-25 16:11:21 -0700209 "${chip_root}/src/protocols/secure_channel",
Michael Spangefa630b2020-07-08 22:23:08 -0400210 "${chip_root}/src/system",
Boris Zbarsky5d663262020-08-27 18:12:39 -0400211 "${nlio_root}:nlio",
Michael Spangefa630b2020-07-08 22:23:08 -0400212 ]
213
mkardous-silabs98282932023-06-05 14:13:46 -0400214 if (chip_enable_icd_server) {
215 public_deps += [ "${chip_root}/src/app/icd:server-srcs" ]
216 }
217
Boris Zbarsky46c78302020-09-24 15:57:57 -0400218 cflags = [ "-Wconversion" ]
219
Michael Spange00eac32021-06-21 17:25:47 -0400220 public_configs = [ "${chip_root}/src:includes" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400221}