blob: c02b331b49af33cdf1ad57bc90f6cdfc5bccd2ea [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
Łukasz Duda4e1faf22021-01-27 17:47:25 +010015import("//build_overrides/build.gni")
Michael Spangefa630b2020-07-08 22:23:08 -040016import("//build_overrides/chip.gni")
17import("//build_overrides/nlio.gni")
rgoliverbf60cc22021-01-26 21:15:59 -050018import("//build_overrides/pigweed.gni")
Łukasz Duda4e1faf22021-01-27 17:47:25 +010019
Łukasz Duda4e1faf22021-01-27 17:47:25 +010020import("${build_root}/config/linux/pkg_config.gni")
Michael Spang09611bf2021-03-02 16:31:57 -050021import("${chip_root}/build/chip/buildconfig_header.gni")
Michael Spang1fcb6dd2020-08-24 11:19:04 -040022
Michael Spang8d085b32020-07-10 10:26:23 -040023import("device.gni")
Michael Spangefa630b2020-07-08 22:23:08 -040024
Michael Spangc32dd2f2020-08-13 08:42:21 -040025if (chip_enable_openthread) {
26 import("//build_overrides/openthread.gni")
Łukasz Duda4e1faf22021-01-27 17:47:25 +010027
Boris Zbarskyec713462022-01-06 15:53:22 -050028 if (chip_device_platform == "linux" || chip_device_platform == "darwin") {
Łukasz Duda4e1faf22021-01-27 17:47:25 +010029 import("//build_overrides/ot_br_posix.gni")
30 }
Michael Spangc32dd2f2020-08-13 08:42:21 -040031}
32
Jiacheng Guod3dd5e02022-03-30 23:43:12 +080033if (chip_device_platform != "none" && chip_device_platform != "external") {
Michael Spangefa630b2020-07-08 22:23:08 -040034 declare_args() {
35 # Extra header to include in CHIPDeviceConfig.h for project.
36 chip_device_project_config_include = ""
Michael Spangda4c1252020-08-06 10:40:49 -040037
38 # Date the firmware was built.
39 chip_device_config_firmware_build_date = ""
40
41 # Time the firmware was built.
42 chip_device_config_firmware_build_time = ""
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +080043
Jiacheng Guob7598a02021-12-09 23:44:38 +080044 # Use OpenThread ftd or mtd library
45 chip_device_config_thread_ftd = chip_openthread_ftd
46
hnnajh96613742021-01-06 08:05:28 -080047 # Enable including the additional data in the advertisement packets
Shubham Patil175218b2022-01-04 21:31:30 +053048 chip_enable_additional_data_advertising = false
hnnajh846f2f12021-02-18 05:45:15 -080049
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -050050 # Enable default/generic test-mode CommissionableDataProvider in GenericConfigurationManagerImpl
51 # === FOR TRANSITION UNTIL ALL EXAMPLES PROVIDE THEIR OWN ===
52 # Linux platform has already transitioned.
53 chip_use_transitional_commissionable_data_provider =
Hui.Li-TCL48b48c22022-03-25 23:18:10 +080054 chip_device_platform != "linux" && chip_device_platform != "android"
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -050055
Andrei Litvin4ae09b32021-05-11 09:14:27 -040056 # lock tracking: none/log/fatal or auto for a platform-dependent choice
57 chip_stack_lock_tracking = "auto"
Hui.Li-TCL924f36e2021-09-30 20:51:41 +080058
59 # todo: below operates are not work without root permission
60 # pthread_attr_setschedpolicy in GenericPlatformManagerImpl_POSIX.cpp
61 chip_device_config_run_as_root = current_os != "android"
Artur Tyneckib4921fc2022-02-21 17:44:34 +010062
63 # Indication that the CHIP data model is included
64 chip_enable_data_model = false
MtTsai58095522022-06-23 02:34:17 +080065
66 # The string of device software version was built.
67 chip_device_config_device_software_version_string = ""
Michael Spangefa630b2020-07-08 22:23:08 -040068 }
69
Michael Spang732e1c02021-06-14 10:21:18 -040070 if (chip_stack_lock_tracking == "auto") {
Hui.Li-TCL924f36e2021-09-30 20:51:41 +080071 if (chip_device_platform == "linux" || chip_device_platform == "tizen" ||
sungmok shinb3c37992022-03-02 02:55:12 +090072 chip_device_platform == "android" || current_os == "freertos" ||
Boris Zbarskyc1d54312022-06-30 20:58:20 -040073 chip_device_platform == "webos" || chip_device_platform == "darwin") {
Michael Spang732e1c02021-06-14 10:21:18 -040074 # TODO: should be fatal for development. Change once bugs are fixed
Boris Zbarsky17dc4b02022-02-15 08:58:13 -050075 chip_stack_lock_tracking = "fatal"
Michael Spang732e1c02021-06-14 10:21:18 -040076 } else {
77 # TODO: may want to enable at least logging for embedded to find bugs
78 # this needs tuning depending on how many resources various platforms have
79 # available (mainly flash size)
80 chip_stack_lock_tracking = "none"
81 }
82 } else {
83 assert(
84 chip_stack_lock_tracking == "none" ||
85 chip_stack_lock_tracking == "log" ||
86 chip_stack_lock_tracking == "fatal",
87 "Please select a valid value for chip_stack_lock_tracking: auto, none, log, fatal")
88 }
89
Michael Spang1fcb6dd2020-08-24 11:19:04 -040090 buildconfig_header("platform_buildconfig") {
91 header = "CHIPDeviceBuildConfig.h"
92 header_dir = "platform"
Michael Spangefa630b2020-07-08 22:23:08 -040093
Vivien Nicolas770a2e22022-07-05 18:21:02 +020094 chip_device_config_enable_wpa =
95 chip_enable_wifi && chip_device_platform != "darwin"
Michael Spang732e1c02021-06-14 10:21:18 -040096 chip_stack_lock_tracking_log = chip_stack_lock_tracking != "none"
97 chip_stack_lock_tracking_fatal = chip_stack_lock_tracking == "fatal"
Michael Spang1fcb6dd2020-08-24 11:19:04 -040098 defines = [
Michael Spang1fcb6dd2020-08-24 11:19:04 -040099 "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}",
100 "CHIP_ENABLE_OPENTHREAD=${chip_enable_openthread}",
Jiacheng Guob7598a02021-12-09 23:44:38 +0800101 "CHIP_DEVICE_CONFIG_THREAD_FTD=${chip_device_config_thread_ftd}",
Michael Spang732e1c02021-06-14 10:21:18 -0400102 "CHIP_STACK_LOCK_TRACKING_ENABLED=${chip_stack_lock_tracking_log}",
103 "CHIP_STACK_LOCK_TRACKING_ERROR_FATAL=${chip_stack_lock_tracking_fatal}",
104 "CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING=${chip_enable_additional_data_advertising}",
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800105 "CHIP_DEVICE_CONFIG_RUN_AS_ROOT=${chip_device_config_run_as_root}",
Boris Zbarsky7666b042022-04-27 10:19:16 -0400106 "CHIP_DISABLE_PLATFORM_KVS=${chip_disable_platform_kvs}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400107 ]
108
Wootak Junge945d162021-09-13 10:39:32 +0900109 if (chip_device_platform == "linux" || chip_device_platform == "darwin" ||
doru91ca807a22022-04-05 18:44:08 +0300110 chip_device_platform == "tizen" || chip_device_platform == "android" ||
sungho1.shinfda78542022-05-25 04:21:58 +0900111 chip_device_platform == "k32w0" || chip_device_platform == "webos") {
Michael Spange1aa7b12021-03-09 18:08:38 -0500112 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE=${chip_enable_ble}" ]
113 }
114
Damian Królik5d00d1c2021-04-07 03:31:43 +0200115 if (chip_enable_nfc) {
doru9101e54b22022-04-14 13:29:13 +0300116 defines += [
117 "CHIP_DEVICE_CONFIG_ENABLE_NFC=1",
118 "CONFIG_CHIP_NFC_COMMISSIONING=1",
119 ]
Damian Królik5d00d1c2021-04-07 03:31:43 +0200120 }
121
Damian Królik79fe72a2021-11-23 10:26:03 +0100122 if (chip_enable_ota_requestor) {
123 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR=1" ]
124 }
125
Michael Spangefa630b2020-07-08 22:23:08 -0400126 if (chip_device_project_config_include != "") {
127 defines += [ "CHIP_DEVICE_PROJECT_CONFIG_INCLUDE=${chip_device_project_config_include}" ]
128 }
129 if (chip_device_platform_config_include != "") {
130 defines += [ "CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE=${chip_device_platform_config_include}" ]
131 }
132
Michael Spangda4c1252020-08-06 10:40:49 -0400133 if (chip_device_config_firmware_build_date != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400134 defines += [ "CHIP_DEVICE_CONFIG_FIRWMARE_BUILD_DATE=\"${chip_device_config_firmware_build_date}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400135 }
136 if (chip_device_config_firmware_build_time != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400137 defines += [ "CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME=\"${chip_device_config_firmware_build_time}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400138 }
139
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500140 if (chip_use_transitional_commissionable_data_provider) {
141 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=1" ]
142 } else {
143 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=0" ]
144 }
145
Seth Rickard4f0521f2021-01-12 16:06:52 -0600146 if (chip_device_platform == "cc13x2_26x2") {
147 defines += [
148 "CHIP_DEVICE_LAYER_TARGET_CC13X2_26X2=1",
149 "CHIP_DEVICE_LAYER_TARGET=cc13x2_26x2",
150 ]
abiradartif4967842022-06-28 09:19:03 -0500151 } else if (chip_device_platform == "cc32xx") {
152 defines += [
153 "CHIP_DEVICE_LAYER_TARGET_CC32XX=1",
154 "CHIP_DEVICE_LAYER_TARGET=cc32xx",
155 ]
Seth Rickard4f0521f2021-01-12 16:06:52 -0600156 } else if (chip_device_platform == "darwin") {
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400157 defines += [
158 "CHIP_DEVICE_LAYER_TARGET_DARWIN=1",
159 "CHIP_DEVICE_LAYER_TARGET=Darwin",
Vivien Nicolas770a2e22022-07-05 18:21:02 +0200160 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400161 ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200162 } else if (chip_device_platform == "efr32") {
163 defines += [
164 "CHIP_DEVICE_LAYER_TARGET_EFR32=1",
chirag-silabs64252c82022-11-24 19:53:53 +0530165 "CHIP_DEVICE_LAYER_TARGET=silabs",
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200166 ]
167 } else if (chip_device_platform == "esp32") {
168 defines += [
169 "CHIP_DEVICE_LAYER_TARGET_ESP32=1",
170 "CHIP_DEVICE_LAYER_TARGET=ESP32",
171 ]
Praveen Chandranab028392022-08-18 07:39:28 -0700172 } else if (chip_device_platform == "psoc6") {
Praveen Chandran080ae572021-08-12 07:58:27 -0700173 defines += [
Praveen Chandranab028392022-08-18 07:39:28 -0700174 "CHIP_DEVICE_LAYER_TARGET_PSOC6=1",
175 "CHIP_DEVICE_LAYER_TARGET=Infineon/PSOC6",
Praveen Chandran080ae572021-08-12 07:58:27 -0700176 ]
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400177 } else if (chip_device_platform == "linux") {
178 defines += [
179 "CHIP_DEVICE_LAYER_TARGET_LINUX=1",
180 "CHIP_DEVICE_LAYER_TARGET=Linux",
Yufeng Wangc23becb2021-09-30 11:18:04 -0700181 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400182 ]
Wootak Junge945d162021-09-13 10:39:32 +0900183 } else if (chip_device_platform == "tizen") {
184 defines += [
185 "CHIP_DEVICE_LAYER_TARGET_TIZEN=1",
186 "CHIP_DEVICE_LAYER_TARGET=Tizen",
187 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
188 ]
189 defines -=
190 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200191 } else if (chip_device_platform == "nrfconnect") {
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400192 defines += [
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200193 "CHIP_DEVICE_LAYER_TARGET_NRFCONNECT=1",
194 "CHIP_DEVICE_LAYER_TARGET=nrfconnect",
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530195 ]
Timothy Maes2478e022021-07-02 04:03:46 +0200196 } else if (chip_device_platform == "qpg") {
Timothy Maesb5b3d382020-10-05 16:59:21 +0200197 defines += [
Timothy Maes2478e022021-07-02 04:03:46 +0200198 "CHIP_DEVICE_LAYER_TARGET_QPG=1",
199 "CHIP_DEVICE_LAYER_TARGET=qpg",
Timothy Maesb5b3d382020-10-05 16:59:21 +0200200 ]
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300201 } else if (chip_device_platform == "k32w0") {
doru9104ac26b2020-10-13 18:23:28 +0300202 defines += [
203 "CHIP_DEVICE_LAYER_TARGET_K32W=1",
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300204 "CHIP_DEVICE_LAYER_TARGET=nxp/k32w/k32w0",
doru9104ac26b2020-10-13 18:23:28 +0300205 ]
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300206 } else if (chip_device_platform == "telink") {
207 defines += [
208 "CHIP_DEVICE_LAYER_TARGET_TELINK=1",
209 "CHIP_DEVICE_LAYER_TARGET=telink",
210 ]
Vincent Coubardcc135602021-06-29 16:58:47 +0100211 } else if (chip_device_platform == "mbed") {
212 defines += [
213 "CHIP_DEVICE_LAYER_TARGET_MBED=1",
214 "CHIP_DEVICE_LAYER_TARGET=mbed",
Artur Tyneckib4921fc2022-02-21 17:44:34 +0100215 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
216 "CHIP_DEVICE_ENABLE_DATA_MODEL=${chip_enable_data_model}",
Vincent Coubardcc135602021-06-29 16:58:47 +0100217 ]
jczhang77736661382022-04-04 21:33:18 +0800218 } else if (chip_device_platform == "bl602") {
219 defines += [
220 "CHIP_DEVICE_LAYER_TARGET_BL602=1",
221 "CHIP_DEVICE_LAYER_TARGET=bouffalolab/BL602",
wyhong3bd83372022-11-09 17:41:06 +0800222 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
jczhang77736661382022-04-04 21:33:18 +0800223 ]
wyhong0ca9aa42022-09-12 23:24:16 +0800224 } else if (chip_device_platform == "bl702") {
225 defines += [
226 "CHIP_DEVICE_LAYER_TARGET_BL702=1",
227 "CHIP_DEVICE_LAYER_TARGET=bouffalolab/BL702",
wyhong3bd83372022-11-09 17:41:06 +0800228 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
wyhong0ca9aa42022-09-12 23:24:16 +0800229 ]
C Freeman79c93152021-08-18 00:20:05 -0400230 } else if (chip_device_platform == "fake") {
231 defines += [
232 "CHIP_DEVICE_LAYER_TARGET_FAKE=1",
233 "CHIP_DEVICE_LAYER_TARGET=fake",
234 ]
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800235 } else if (chip_device_platform == "android") {
236 defines += [
237 "CHIP_DEVICE_LAYER_TARGET_ANDROID=1",
238 "CHIP_DEVICE_LAYER_TARGET=android",
239 ]
pankore544da73c2021-10-19 02:51:16 +0800240 } else if (chip_device_platform == "ameba") {
241 defines += [
242 "CHIP_DEVICE_LAYER_TARGET_AMEBA=1",
243 "CHIP_DEVICE_LAYER_TARGET=Ameba",
pankoree6dab3712021-11-10 01:52:01 +0800244 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
pankore544da73c2021-10-19 02:51:16 +0800245 ]
Todd Chou1af90eb2022-01-21 12:29:29 +0800246 } else if (chip_device_platform == "cyw30739") {
247 defines += [
248 "CHIP_DEVICE_LAYER_TARGET_CYW30739=1",
Praveen Chandranab028392022-08-18 07:39:28 -0700249 "CHIP_DEVICE_LAYER_TARGET=Infineon/CYW30739",
Todd Chou1af90eb2022-01-21 12:29:29 +0800250 ]
sungmok shinb3c37992022-03-02 02:55:12 +0900251 } else if (chip_device_platform == "webos") {
252 defines += [
253 "CHIP_DEVICE_LAYER_TARGET_WEBOS=1",
sungho1.shinfda78542022-05-25 04:21:58 +0900254 "CHIP_DEVICE_LAYER_TARGET=webos",
sungmok shinb3c37992022-03-02 02:55:12 +0900255 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
256 ]
257 defines -=
258 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
nxptest2d0c5292022-06-24 19:04:49 +0800259 } else if (chip_device_platform == "mw320") {
260 defines += [
261 "CHIP_DEVICE_LAYER_TARGET_MW320=1",
262 "CHIP_DEVICE_LAYER_TARGET=nxp/mw320",
263 ]
Jandy Gou3ffd0662022-06-14 22:02:05 +0800264 } else if (chip_device_platform == "zephyr") {
265 defines += [
266 "CHIP_DEVICE_LAYER_TARGET_ZEPHYR=1",
267 "CHIP_DEVICE_LAYER_TARGET=Zephyr",
268 ]
zhengyaohan0528a422022-08-16 06:52:33 +0800269 } else if (chip_device_platform == "beken") {
270 defines += [
271 "CHIP_DEVICE_LAYER_TARGET_BEKEN=1",
272 "CHIP_DEVICE_LAYER_TARGET=Beken",
gugugu3a3b1db2022-09-15 02:31:13 +0800273 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
pakls0168a572022-09-14 03:05:11 +0800274 ]
275 } else if (chip_device_platform == "mt793x") {
276 defines += [
277 "CHIP_DEVICE_LAYER_TARGET_MT793X=1",
278 "CHIP_DEVICE_LAYER_TARGET=mt793x",
zhengyaohan0528a422022-08-16 06:52:33 +0800279 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
280 ]
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530281 }
MtTsai58095522022-06-23 02:34:17 +0800282
283 if (chip_device_config_device_software_version_string != "") {
284 defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING=\"${chip_device_config_device_software_version_string}\"" ]
285 }
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400286 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800287} else if (chip_device_platform == "none") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800288 buildconfig_header("platform_buildconfig") {
289 header = "CHIPDeviceBuildConfig.h"
290 header_dir = "platform"
291
292 defines = [
293 "CHIP_DEVICE_LAYER_NONE=1",
294 "CHIP_DEVICE_LAYER_TARGET=NONE",
295 ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400296
297 if (current_os == "android") {
Andrei Litvinb7924632022-03-03 15:29:54 -0500298 defines += [ "EXTERNAL_KEYVALUESTOREMANAGERIMPL_HEADER=\"controller/java/AndroidKeyValueStoreManagerImpl.h\"" ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400299 }
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800300 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800301} else {
302 group("platform_buildconfig") {
303 public_deps = [ "${chip_platform_target}:platform_buildconfig" ]
304 }
Jiacheng Guo57945c22020-08-29 03:56:59 +0800305}
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400306
Michael Spang68fcef62021-07-05 21:50:23 -0400307if (chip_device_platform != "none") {
308 group("platform_base") {
309 public_deps = [
310 ":platform_buildconfig",
311 "${chip_root}/src/ble",
312 "${chip_root}/src/inet",
313 "${chip_root}/src/lib/core",
314 "${chip_root}/src/lib/support",
Kamil Kasperczyk838e4892022-02-25 15:43:35 +0100315 "${chip_root}/src/setup_payload:additional_data_payload",
Michael Spang68fcef62021-07-05 21:50:23 -0400316 "${chip_root}/src/system",
317 ]
318
319 public_configs = [ "${chip_root}/src:includes" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400320 }
321
322 static_library("platform") {
323 output_name = "libDeviceLayer"
324
325 sources = [
Michael Sandstedt8cc291d2022-06-07 10:02:58 -0500326 "../include/platform/BuildTime.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400327 "../include/platform/CHIPDeviceConfig.h",
328 "../include/platform/CHIPDeviceError.h",
329 "../include/platform/CHIPDeviceEvent.h",
330 "../include/platform/CHIPDeviceLayer.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500331 "../include/platform/CommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400332 "../include/platform/ConfigurationManager.h",
333 "../include/platform/ConnectivityManager.h",
Yufeng Wang89aff252021-12-15 11:28:14 -0800334 "../include/platform/DeviceControlServer.h",
Arkadiusz Bałyse0236672022-05-27 11:19:32 +0200335 "../include/platform/DeviceInstanceInfoProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400336 "../include/platform/GeneralUtils.h",
rgoliverbf60cc22021-01-26 21:15:59 -0500337 "../include/platform/KeyValueStoreManager.h",
Tennessee Carmel-Veilleuxdef18812022-04-04 13:12:25 -0400338 "../include/platform/KvsPersistentStorageDelegate.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400339 "../include/platform/PersistedStorage.h",
340 "../include/platform/PlatformManager.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500341 "../include/platform/TestOnlyCommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400342 "../include/platform/ThreadStackManager.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400343 "../include/platform/internal/BLEManager.h",
344 "../include/platform/internal/CHIPDeviceLayerInternal.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400345 "../include/platform/internal/DeviceNetworkInfo.h",
346 "../include/platform/internal/EventLogging.h",
347 "../include/platform/internal/GenericConfigurationManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400348 "../include/platform/internal/GenericConfigurationManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400349 "../include/platform/internal/GenericConnectivityManagerImpl.h",
350 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400351 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400352 "../include/platform/internal/GenericConnectivityManagerImpl_NoBLE.h",
353 "../include/platform/internal/GenericConnectivityManagerImpl_NoThread.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400354 "../include/platform/internal/GenericConnectivityManagerImpl_NoWiFi.h",
Michael Spang65bea662022-06-21 17:33:51 -0400355 "../include/platform/internal/GenericConnectivityManagerImpl_TCP.h",
356 "../include/platform/internal/GenericConnectivityManagerImpl_TCP.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400357 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400358 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp",
Michael Spang65bea662022-06-21 17:33:51 -0400359 "../include/platform/internal/GenericConnectivityManagerImpl_UDP.h",
360 "../include/platform/internal/GenericConnectivityManagerImpl_UDP.ipp",
Yufeng Wang2a1e8bc2020-09-27 23:27:02 -0700361 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400362 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.ipp",
Kamil Kasperczyk09f3e4a2022-06-15 10:27:34 +0200363 "../include/platform/internal/GenericDeviceInstanceInfoProvider.h",
364 "../include/platform/internal/GenericDeviceInstanceInfoProvider.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400365 "../include/platform/internal/GenericPlatformManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400366 "../include/platform/internal/GenericPlatformManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400367 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400368 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400369 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400370 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp",
371 "../include/platform/internal/GenericPlatformManagerImpl_Zephyr.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400372 "../include/platform/internal/testing/ConfigUnitTest.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500373 "CommissionableDataProvider.cpp",
Yufeng Wang17be4af2021-05-03 21:46:33 -0700374 "DeviceControlServer.cpp",
Yufeng Wang6a551942022-03-30 23:37:40 -0700375 "DeviceInfoProvider.cpp",
Arkadiusz Bałyse0236672022-05-27 11:19:32 +0200376 "DeviceInstanceInfoProvider.cpp",
Yufeng Wang3e863a92021-11-22 11:41:21 -0800377 "DiagnosticDataProvider.cpp",
Zang MingJie659848c2021-09-03 23:13:45 +0800378 "Entropy.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400379 "GeneralUtils.cpp",
380 "Globals.cpp",
Andrei Litvin4ae09b32021-05-11 09:14:27 -0400381 "LockTracker.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400382 "PersistedStorage.cpp",
Zang MingJie39ff9bf2021-11-05 12:29:08 +0800383 "PlatformEventSupport.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400384 ]
385
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500386 # Linux has its own NetworkCommissioningThreadDriver
Abhay Agarwaldf5d0ee2022-05-02 20:00:25 +0530387 if (chip_enable_openthread && chip_device_platform != "linux" &&
sungho1.shinfda78542022-05-25 04:21:58 +0900388 chip_device_platform != "tizen" && chip_device_platform != "webos") {
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500389 sources += [
390 "OpenThread/GenericNetworkCommissioningThreadDriver.cpp",
391 "OpenThread/GenericNetworkCommissioningThreadDriver.h",
392 ]
393 }
394
Boris Zbarsky444b50b2020-09-23 19:53:06 -0400395 cflags = [ "-Wconversion" ]
396
Michael Spangefa630b2020-07-08 22:23:08 -0400397 public_deps = [
Michael Spang68fcef62021-07-05 21:50:23 -0400398 ":platform_base",
Daniel Nicoara641e3ad2022-07-25 15:32:03 -0400399 "${chip_root}/src/app:app_config",
Yufeng Wang551e53f2021-10-26 13:41:18 -0700400 "${chip_root}/src/app/common:cluster-objects",
Zang MingJie659848c2021-09-03 23:13:45 +0800401 "${chip_root}/src/crypto",
Michael Spangefa630b2020-07-08 22:23:08 -0400402 "${chip_root}/src/lib/support",
Michael Spangefa630b2020-07-08 22:23:08 -0400403 ]
404
Seth Rickard4f0521f2021-01-12 16:06:52 -0600405 if (chip_device_platform == "cc13x2_26x2") {
Michael Spang68fcef62021-07-05 21:50:23 -0400406 _platform_target = "cc13x2_26x2"
abiradartif4967842022-06-28 09:19:03 -0500407 } else if (chip_device_platform == "cc32xx") {
408 _platform_target = "cc32xx"
Seth Rickard4f0521f2021-01-12 16:06:52 -0600409 } else if (chip_device_platform == "darwin") {
Michael Spang68fcef62021-07-05 21:50:23 -0400410 _platform_target = "Darwin"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200411 } else if (chip_device_platform == "efr32") {
chirag-silabs64252c82022-11-24 19:53:53 +0530412 _platform_target = "silabs/EFR32"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200413 } else if (chip_device_platform == "esp32") {
Michael Spang68fcef62021-07-05 21:50:23 -0400414 _platform_target = "ESP32"
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300415 } else if (chip_device_platform == "k32w0") {
416 _platform_target = "nxp/k32w/k32w0"
Michael Spang4314d812020-08-07 10:17:09 -0400417 } else if (chip_device_platform == "linux") {
Michael Spang68fcef62021-07-05 21:50:23 -0400418 _platform_target = "Linux"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200419 } else if (chip_device_platform == "nrfconnect") {
Michael Spang68fcef62021-07-05 21:50:23 -0400420 _platform_target = "nrfconnect"
Timothy Maes2478e022021-07-02 04:03:46 +0200421 } else if (chip_device_platform == "qpg") {
Michael Spang68fcef62021-07-05 21:50:23 -0400422 _platform_target = "qpg"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300423 } else if (chip_device_platform == "telink") {
Michael Spang68fcef62021-07-05 21:50:23 -0400424 _platform_target = "telink"
Vincent Coubardcc135602021-06-29 16:58:47 +0100425 } else if (chip_device_platform == "mbed") {
Michael Spang68fcef62021-07-05 21:50:23 -0400426 _platform_target = "mbed"
Wootak Junge945d162021-09-13 10:39:32 +0900427 } else if (chip_device_platform == "tizen") {
428 _platform_target = "Tizen"
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800429 } else if (chip_device_platform == "android") {
430 _platform_target = "android"
Michael Spang68fcef62021-07-05 21:50:23 -0400431 } else if (chip_device_platform == "external") {
432 _platform_target = chip_platform_target
Praveen Chandranab028392022-08-18 07:39:28 -0700433 } else if (chip_device_platform == "psoc6") {
434 _platform_target = "Infineon/PSOC6"
pankore544da73c2021-10-19 02:51:16 +0800435 } else if (chip_device_platform == "ameba") {
436 _platform_target = "Ameba"
sungmok shinb3c37992022-03-02 02:55:12 +0900437 } else if (chip_device_platform == "webos") {
438 _platform_target = "webos"
jczhang77736661382022-04-04 21:33:18 +0800439 } else if (chip_device_platform == "bl602") {
440 _platform_target = "bouffalolab/BL602"
wyhong0ca9aa42022-09-12 23:24:16 +0800441 } else if (chip_device_platform == "bl702") {
442 _platform_target = "bouffalolab/BL702"
C Freeman79c93152021-08-18 00:20:05 -0400443 } else if (chip_device_platform == "fake") {
444 _platform_target = "fake"
Todd Chou1af90eb2022-01-21 12:29:29 +0800445 } else if (chip_device_platform == "cyw30739") {
Praveen Chandranab028392022-08-18 07:39:28 -0700446 _platform_target = "Infineon/CYW30739"
nxptest2d0c5292022-06-24 19:04:49 +0800447 } else if (chip_device_platform == "mw320") {
448 _platform_target = "nxp/mw320"
Jandy Gou3ffd0662022-06-14 22:02:05 +0800449 } else if (chip_device_platform == "zephyr") {
450 _platform_target = "Zephyr"
zhengyaohan0528a422022-08-16 06:52:33 +0800451 } else if (chip_device_platform == "beken") {
452 _platform_target = "Beken"
pakls0168a572022-09-14 03:05:11 +0800453 } else if (chip_device_platform == "mt793x") {
454 _platform_target = "mt793x"
Michael Spang68fcef62021-07-05 21:50:23 -0400455 } else {
456 assert(false, "Unknown chip_device_platform: ${chip_device_platform}")
Michael Spangefa630b2020-07-08 22:23:08 -0400457 }
Michael Spangdb9b8612020-07-13 09:43:13 -0400458
Michael Spang68fcef62021-07-05 21:50:23 -0400459 public_deps += [ _platform_target ]
Kamil Kasperczyk44014022021-03-12 21:18:45 +0100460
Michael Spang68fcef62021-07-05 21:50:23 -0400461 # The platform target needs to include the headers, so allow that here.
462 # It should be considered logically part of this target.
463 allow_circular_includes_from = [
464 _platform_target,
465 "${chip_root}/src/lib/support",
466 ]
Jiacheng Guod8f58a02020-08-19 00:23:40 +0800467 }
Michael Spangefa630b2020-07-08 22:23:08 -0400468} else {
469 group("platform") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800470 public_deps = [ ":platform_buildconfig" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400471 }
472}