blob: b8b20ee5739379f9451228a540b3d3bcae3d1b8c [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
Michael Spang1fcb6dd2020-08-24 11:19:04 -040094 chip_with_gio = chip_enable_wifi
Vivien Nicolas770a2e22022-07-05 18:21:02 +020095 chip_device_config_enable_wpa =
96 chip_enable_wifi && chip_device_platform != "darwin"
Michael Spang732e1c02021-06-14 10:21:18 -040097 chip_stack_lock_tracking_log = chip_stack_lock_tracking != "none"
98 chip_stack_lock_tracking_fatal = chip_stack_lock_tracking == "fatal"
Michael Spang1fcb6dd2020-08-24 11:19:04 -040099 defines = [
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400100 "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}",
101 "CHIP_ENABLE_OPENTHREAD=${chip_enable_openthread}",
Jiacheng Guob7598a02021-12-09 23:44:38 +0800102 "CHIP_DEVICE_CONFIG_THREAD_FTD=${chip_device_config_thread_ftd}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400103 "CHIP_WITH_GIO=${chip_with_gio}",
104 "OPENTHREAD_CONFIG_ENABLE_TOBLE=false",
Michael Spang732e1c02021-06-14 10:21:18 -0400105 "CHIP_STACK_LOCK_TRACKING_ENABLED=${chip_stack_lock_tracking_log}",
106 "CHIP_STACK_LOCK_TRACKING_ERROR_FATAL=${chip_stack_lock_tracking_fatal}",
107 "CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING=${chip_enable_additional_data_advertising}",
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800108 "CHIP_DEVICE_CONFIG_RUN_AS_ROOT=${chip_device_config_run_as_root}",
Boris Zbarsky7666b042022-04-27 10:19:16 -0400109 "CHIP_DISABLE_PLATFORM_KVS=${chip_disable_platform_kvs}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400110 ]
111
Wootak Junge945d162021-09-13 10:39:32 +0900112 if (chip_device_platform == "linux" || chip_device_platform == "darwin" ||
doru91ca807a22022-04-05 18:44:08 +0300113 chip_device_platform == "tizen" || chip_device_platform == "android" ||
sungho1.shinfda78542022-05-25 04:21:58 +0900114 chip_device_platform == "k32w0" || chip_device_platform == "webos") {
Michael Spange1aa7b12021-03-09 18:08:38 -0500115 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE=${chip_enable_ble}" ]
116 }
117
Damian Królik5d00d1c2021-04-07 03:31:43 +0200118 if (chip_enable_nfc) {
doru9101e54b22022-04-14 13:29:13 +0300119 defines += [
120 "CHIP_DEVICE_CONFIG_ENABLE_NFC=1",
121 "CONFIG_CHIP_NFC_COMMISSIONING=1",
122 ]
Damian Królik5d00d1c2021-04-07 03:31:43 +0200123 }
124
Damian Królik79fe72a2021-11-23 10:26:03 +0100125 if (chip_enable_ota_requestor) {
126 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR=1" ]
127 }
128
Michael Spangefa630b2020-07-08 22:23:08 -0400129 if (chip_device_project_config_include != "") {
130 defines += [ "CHIP_DEVICE_PROJECT_CONFIG_INCLUDE=${chip_device_project_config_include}" ]
131 }
132 if (chip_device_platform_config_include != "") {
133 defines += [ "CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE=${chip_device_platform_config_include}" ]
134 }
135
Michael Spangda4c1252020-08-06 10:40:49 -0400136 if (chip_device_config_firmware_build_date != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400137 defines += [ "CHIP_DEVICE_CONFIG_FIRWMARE_BUILD_DATE=\"${chip_device_config_firmware_build_date}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400138 }
139 if (chip_device_config_firmware_build_time != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400140 defines += [ "CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME=\"${chip_device_config_firmware_build_time}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400141 }
142
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500143 if (chip_use_transitional_commissionable_data_provider) {
144 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=1" ]
145 } else {
146 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=0" ]
147 }
148
Seth Rickard4f0521f2021-01-12 16:06:52 -0600149 if (chip_device_platform == "cc13x2_26x2") {
150 defines += [
151 "CHIP_DEVICE_LAYER_TARGET_CC13X2_26X2=1",
152 "CHIP_DEVICE_LAYER_TARGET=cc13x2_26x2",
153 ]
abiradartif4967842022-06-28 09:19:03 -0500154 } else if (chip_device_platform == "cc32xx") {
155 defines += [
156 "CHIP_DEVICE_LAYER_TARGET_CC32XX=1",
157 "CHIP_DEVICE_LAYER_TARGET=cc32xx",
158 ]
Seth Rickard4f0521f2021-01-12 16:06:52 -0600159 } else if (chip_device_platform == "darwin") {
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400160 defines += [
161 "CHIP_DEVICE_LAYER_TARGET_DARWIN=1",
162 "CHIP_DEVICE_LAYER_TARGET=Darwin",
Vivien Nicolas770a2e22022-07-05 18:21:02 +0200163 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400164 ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200165 } else if (chip_device_platform == "efr32") {
166 defines += [
167 "CHIP_DEVICE_LAYER_TARGET_EFR32=1",
168 "CHIP_DEVICE_LAYER_TARGET=EFR32",
169 ]
170 } else if (chip_device_platform == "esp32") {
171 defines += [
172 "CHIP_DEVICE_LAYER_TARGET_ESP32=1",
173 "CHIP_DEVICE_LAYER_TARGET=ESP32",
174 ]
Praveen Chandran080ae572021-08-12 07:58:27 -0700175 } else if (chip_device_platform == "p6") {
176 defines += [
177 "CHIP_DEVICE_LAYER_TARGET_P6=1",
178 "CHIP_DEVICE_LAYER_TARGET=P6",
179 ]
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400180 } else if (chip_device_platform == "linux") {
181 defines += [
182 "CHIP_DEVICE_LAYER_TARGET_LINUX=1",
183 "CHIP_DEVICE_LAYER_TARGET=Linux",
Yufeng Wangc23becb2021-09-30 11:18:04 -0700184 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400185 ]
Wootak Junge945d162021-09-13 10:39:32 +0900186 } else if (chip_device_platform == "tizen") {
187 defines += [
188 "CHIP_DEVICE_LAYER_TARGET_TIZEN=1",
189 "CHIP_DEVICE_LAYER_TARGET=Tizen",
190 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
191 ]
192 defines -=
193 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200194 } else if (chip_device_platform == "nrfconnect") {
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400195 defines += [
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200196 "CHIP_DEVICE_LAYER_TARGET_NRFCONNECT=1",
197 "CHIP_DEVICE_LAYER_TARGET=nrfconnect",
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530198 ]
Timothy Maes2478e022021-07-02 04:03:46 +0200199 } else if (chip_device_platform == "qpg") {
Timothy Maesb5b3d382020-10-05 16:59:21 +0200200 defines += [
Timothy Maes2478e022021-07-02 04:03:46 +0200201 "CHIP_DEVICE_LAYER_TARGET_QPG=1",
202 "CHIP_DEVICE_LAYER_TARGET=qpg",
Timothy Maesb5b3d382020-10-05 16:59:21 +0200203 ]
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300204 } else if (chip_device_platform == "k32w0") {
doru9104ac26b2020-10-13 18:23:28 +0300205 defines += [
206 "CHIP_DEVICE_LAYER_TARGET_K32W=1",
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300207 "CHIP_DEVICE_LAYER_TARGET=nxp/k32w/k32w0",
doru9104ac26b2020-10-13 18:23:28 +0300208 ]
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300209 } else if (chip_device_platform == "telink") {
210 defines += [
211 "CHIP_DEVICE_LAYER_TARGET_TELINK=1",
212 "CHIP_DEVICE_LAYER_TARGET=telink",
213 ]
Vincent Coubardcc135602021-06-29 16:58:47 +0100214 } else if (chip_device_platform == "mbed") {
215 defines += [
216 "CHIP_DEVICE_LAYER_TARGET_MBED=1",
217 "CHIP_DEVICE_LAYER_TARGET=mbed",
Artur Tyneckib4921fc2022-02-21 17:44:34 +0100218 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
219 "CHIP_DEVICE_ENABLE_DATA_MODEL=${chip_enable_data_model}",
Vincent Coubardcc135602021-06-29 16:58:47 +0100220 ]
jczhang77736661382022-04-04 21:33:18 +0800221 } else if (chip_device_platform == "bl602") {
222 defines += [
223 "CHIP_DEVICE_LAYER_TARGET_BL602=1",
224 "CHIP_DEVICE_LAYER_TARGET=bouffalolab/BL602",
225 ]
C Freeman79c93152021-08-18 00:20:05 -0400226 } else if (chip_device_platform == "fake") {
227 defines += [
228 "CHIP_DEVICE_LAYER_TARGET_FAKE=1",
229 "CHIP_DEVICE_LAYER_TARGET=fake",
230 ]
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800231 } else if (chip_device_platform == "android") {
232 defines += [
233 "CHIP_DEVICE_LAYER_TARGET_ANDROID=1",
234 "CHIP_DEVICE_LAYER_TARGET=android",
235 ]
pankore544da73c2021-10-19 02:51:16 +0800236 } else if (chip_device_platform == "ameba") {
237 defines += [
238 "CHIP_DEVICE_LAYER_TARGET_AMEBA=1",
239 "CHIP_DEVICE_LAYER_TARGET=Ameba",
pankoree6dab3712021-11-10 01:52:01 +0800240 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
pankore544da73c2021-10-19 02:51:16 +0800241 ]
Todd Chou1af90eb2022-01-21 12:29:29 +0800242 } else if (chip_device_platform == "cyw30739") {
243 defines += [
244 "CHIP_DEVICE_LAYER_TARGET_CYW30739=1",
245 "CHIP_DEVICE_LAYER_TARGET=CYW30739",
246 ]
sungmok shinb3c37992022-03-02 02:55:12 +0900247 } else if (chip_device_platform == "webos") {
248 defines += [
249 "CHIP_DEVICE_LAYER_TARGET_WEBOS=1",
sungho1.shinfda78542022-05-25 04:21:58 +0900250 "CHIP_DEVICE_LAYER_TARGET=webos",
sungmok shinb3c37992022-03-02 02:55:12 +0900251 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
252 ]
253 defines -=
254 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
nxptest2d0c5292022-06-24 19:04:49 +0800255 } else if (chip_device_platform == "mw320") {
256 defines += [
257 "CHIP_DEVICE_LAYER_TARGET_MW320=1",
258 "CHIP_DEVICE_LAYER_TARGET=nxp/mw320",
259 ]
Jandy Gou3ffd0662022-06-14 22:02:05 +0800260 } else if (chip_device_platform == "zephyr") {
261 defines += [
262 "CHIP_DEVICE_LAYER_TARGET_ZEPHYR=1",
263 "CHIP_DEVICE_LAYER_TARGET=Zephyr",
264 ]
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530265 }
MtTsai58095522022-06-23 02:34:17 +0800266
267 if (chip_device_config_device_software_version_string != "") {
268 defines += [ "CHIP_DEVICE_CONFIG_DEVICE_SOFTWARE_VERSION_STRING=\"${chip_device_config_device_software_version_string}\"" ]
269 }
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400270 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800271} else if (chip_device_platform == "none") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800272 buildconfig_header("platform_buildconfig") {
273 header = "CHIPDeviceBuildConfig.h"
274 header_dir = "platform"
275
276 defines = [
277 "CHIP_DEVICE_LAYER_NONE=1",
278 "CHIP_DEVICE_LAYER_TARGET=NONE",
279 ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400280
281 if (current_os == "android") {
Andrei Litvinb7924632022-03-03 15:29:54 -0500282 defines += [ "EXTERNAL_KEYVALUESTOREMANAGERIMPL_HEADER=\"controller/java/AndroidKeyValueStoreManagerImpl.h\"" ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400283 }
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800284 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800285} else {
286 group("platform_buildconfig") {
287 public_deps = [ "${chip_platform_target}:platform_buildconfig" ]
288 }
Jiacheng Guo57945c22020-08-29 03:56:59 +0800289}
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400290
Michael Spang68fcef62021-07-05 21:50:23 -0400291if (chip_device_platform != "none") {
292 group("platform_base") {
293 public_deps = [
294 ":platform_buildconfig",
295 "${chip_root}/src/ble",
296 "${chip_root}/src/inet",
297 "${chip_root}/src/lib/core",
298 "${chip_root}/src/lib/support",
Kamil Kasperczyk838e4892022-02-25 15:43:35 +0100299 "${chip_root}/src/setup_payload:additional_data_payload",
Michael Spang68fcef62021-07-05 21:50:23 -0400300 "${chip_root}/src/system",
301 ]
302
303 public_configs = [ "${chip_root}/src:includes" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400304 }
305
306 static_library("platform") {
307 output_name = "libDeviceLayer"
308
309 sources = [
Michael Sandstedt8cc291d2022-06-07 10:02:58 -0500310 "../include/platform/BuildTime.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400311 "../include/platform/CHIPDeviceConfig.h",
312 "../include/platform/CHIPDeviceError.h",
313 "../include/platform/CHIPDeviceEvent.h",
314 "../include/platform/CHIPDeviceLayer.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500315 "../include/platform/CommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400316 "../include/platform/ConfigurationManager.h",
317 "../include/platform/ConnectivityManager.h",
Yufeng Wang89aff252021-12-15 11:28:14 -0800318 "../include/platform/DeviceControlServer.h",
Arkadiusz Bałyse0236672022-05-27 11:19:32 +0200319 "../include/platform/DeviceInstanceInfoProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400320 "../include/platform/GeneralUtils.h",
rgoliverbf60cc22021-01-26 21:15:59 -0500321 "../include/platform/KeyValueStoreManager.h",
Tennessee Carmel-Veilleuxdef18812022-04-04 13:12:25 -0400322 "../include/platform/KvsPersistentStorageDelegate.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400323 "../include/platform/PersistedStorage.h",
324 "../include/platform/PlatformManager.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500325 "../include/platform/TestOnlyCommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400326 "../include/platform/ThreadStackManager.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400327 "../include/platform/internal/BLEManager.h",
328 "../include/platform/internal/CHIPDeviceLayerInternal.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400329 "../include/platform/internal/DeviceNetworkInfo.h",
Pankaj Garg4239bcf2020-10-27 08:41:54 -0700330 "../include/platform/internal/DeviceNetworkProvisioning.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400331 "../include/platform/internal/EventLogging.h",
332 "../include/platform/internal/GenericConfigurationManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400333 "../include/platform/internal/GenericConfigurationManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400334 "../include/platform/internal/GenericConnectivityManagerImpl.h",
335 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400336 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400337 "../include/platform/internal/GenericConnectivityManagerImpl_NoBLE.h",
338 "../include/platform/internal/GenericConnectivityManagerImpl_NoThread.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400339 "../include/platform/internal/GenericConnectivityManagerImpl_NoWiFi.h",
Michael Spang65bea662022-06-21 17:33:51 -0400340 "../include/platform/internal/GenericConnectivityManagerImpl_TCP.h",
341 "../include/platform/internal/GenericConnectivityManagerImpl_TCP.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400342 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400343 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp",
Michael Spang65bea662022-06-21 17:33:51 -0400344 "../include/platform/internal/GenericConnectivityManagerImpl_UDP.h",
345 "../include/platform/internal/GenericConnectivityManagerImpl_UDP.ipp",
Yufeng Wang2a1e8bc2020-09-27 23:27:02 -0700346 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400347 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.ipp",
Kamil Kasperczyk09f3e4a2022-06-15 10:27:34 +0200348 "../include/platform/internal/GenericDeviceInstanceInfoProvider.h",
349 "../include/platform/internal/GenericDeviceInstanceInfoProvider.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400350 "../include/platform/internal/GenericPlatformManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400351 "../include/platform/internal/GenericPlatformManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400352 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400353 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400354 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400355 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp",
356 "../include/platform/internal/GenericPlatformManagerImpl_Zephyr.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400357 "../include/platform/internal/testing/ConfigUnitTest.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500358 "CommissionableDataProvider.cpp",
Yufeng Wang17be4af2021-05-03 21:46:33 -0700359 "DeviceControlServer.cpp",
Yufeng Wang6a551942022-03-30 23:37:40 -0700360 "DeviceInfoProvider.cpp",
Arkadiusz Bałyse0236672022-05-27 11:19:32 +0200361 "DeviceInstanceInfoProvider.cpp",
Yufeng Wang3e863a92021-11-22 11:41:21 -0800362 "DiagnosticDataProvider.cpp",
Zang MingJie659848c2021-09-03 23:13:45 +0800363 "Entropy.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400364 "GeneralUtils.cpp",
365 "Globals.cpp",
Andrei Litvin4ae09b32021-05-11 09:14:27 -0400366 "LockTracker.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400367 "PersistedStorage.cpp",
Zang MingJie39ff9bf2021-11-05 12:29:08 +0800368 "PlatformEventSupport.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400369 ]
370
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500371 # Linux has its own NetworkCommissioningThreadDriver
Abhay Agarwaldf5d0ee2022-05-02 20:00:25 +0530372 if (chip_enable_openthread && chip_device_platform != "linux" &&
sungho1.shinfda78542022-05-25 04:21:58 +0900373 chip_device_platform != "tizen" && chip_device_platform != "webos") {
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500374 sources += [
375 "OpenThread/GenericNetworkCommissioningThreadDriver.cpp",
376 "OpenThread/GenericNetworkCommissioningThreadDriver.h",
377 ]
378 }
379
Boris Zbarsky444b50b2020-09-23 19:53:06 -0400380 cflags = [ "-Wconversion" ]
381
Michael Spangefa630b2020-07-08 22:23:08 -0400382 public_deps = [
Michael Spang68fcef62021-07-05 21:50:23 -0400383 ":platform_base",
Daniel Nicoara641e3ad2022-07-25 15:32:03 -0400384 "${chip_root}/src/app:app_config",
Yufeng Wang551e53f2021-10-26 13:41:18 -0700385 "${chip_root}/src/app/common:cluster-objects",
Zang MingJie659848c2021-09-03 23:13:45 +0800386 "${chip_root}/src/crypto",
Michael Spangefa630b2020-07-08 22:23:08 -0400387 "${chip_root}/src/lib/support",
Michael Spangefa630b2020-07-08 22:23:08 -0400388 ]
389
Seth Rickard4f0521f2021-01-12 16:06:52 -0600390 if (chip_device_platform == "cc13x2_26x2") {
Michael Spang68fcef62021-07-05 21:50:23 -0400391 _platform_target = "cc13x2_26x2"
abiradartif4967842022-06-28 09:19:03 -0500392 } else if (chip_device_platform == "cc32xx") {
393 _platform_target = "cc32xx"
Seth Rickard4f0521f2021-01-12 16:06:52 -0600394 } else if (chip_device_platform == "darwin") {
Michael Spang68fcef62021-07-05 21:50:23 -0400395 _platform_target = "Darwin"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200396 } else if (chip_device_platform == "efr32") {
Michael Spang68fcef62021-07-05 21:50:23 -0400397 _platform_target = "EFR32"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200398 } else if (chip_device_platform == "esp32") {
Michael Spang68fcef62021-07-05 21:50:23 -0400399 _platform_target = "ESP32"
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300400 } else if (chip_device_platform == "k32w0") {
401 _platform_target = "nxp/k32w/k32w0"
Michael Spang4314d812020-08-07 10:17:09 -0400402 } else if (chip_device_platform == "linux") {
Michael Spang68fcef62021-07-05 21:50:23 -0400403 _platform_target = "Linux"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200404 } else if (chip_device_platform == "nrfconnect") {
Michael Spang68fcef62021-07-05 21:50:23 -0400405 _platform_target = "nrfconnect"
Timothy Maes2478e022021-07-02 04:03:46 +0200406 } else if (chip_device_platform == "qpg") {
Michael Spang68fcef62021-07-05 21:50:23 -0400407 _platform_target = "qpg"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300408 } else if (chip_device_platform == "telink") {
Michael Spang68fcef62021-07-05 21:50:23 -0400409 _platform_target = "telink"
Vincent Coubardcc135602021-06-29 16:58:47 +0100410 } else if (chip_device_platform == "mbed") {
Michael Spang68fcef62021-07-05 21:50:23 -0400411 _platform_target = "mbed"
Wootak Junge945d162021-09-13 10:39:32 +0900412 } else if (chip_device_platform == "tizen") {
413 _platform_target = "Tizen"
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800414 } else if (chip_device_platform == "android") {
415 _platform_target = "android"
Michael Spang68fcef62021-07-05 21:50:23 -0400416 } else if (chip_device_platform == "external") {
417 _platform_target = chip_platform_target
Praveen Chandran080ae572021-08-12 07:58:27 -0700418 } else if (chip_device_platform == "p6") {
419 _platform_target = "P6"
pankore544da73c2021-10-19 02:51:16 +0800420 } else if (chip_device_platform == "ameba") {
421 _platform_target = "Ameba"
sungmok shinb3c37992022-03-02 02:55:12 +0900422 } else if (chip_device_platform == "webos") {
423 _platform_target = "webos"
jczhang77736661382022-04-04 21:33:18 +0800424 } else if (chip_device_platform == "bl602") {
425 _platform_target = "bouffalolab/BL602"
C Freeman79c93152021-08-18 00:20:05 -0400426 } else if (chip_device_platform == "fake") {
427 _platform_target = "fake"
Todd Chou1af90eb2022-01-21 12:29:29 +0800428 } else if (chip_device_platform == "cyw30739") {
429 _platform_target = "CYW30739"
nxptest2d0c5292022-06-24 19:04:49 +0800430 } else if (chip_device_platform == "mw320") {
431 _platform_target = "nxp/mw320"
Jandy Gou3ffd0662022-06-14 22:02:05 +0800432 } else if (chip_device_platform == "zephyr") {
433 _platform_target = "Zephyr"
Michael Spang68fcef62021-07-05 21:50:23 -0400434 } else {
435 assert(false, "Unknown chip_device_platform: ${chip_device_platform}")
Michael Spangefa630b2020-07-08 22:23:08 -0400436 }
Michael Spangdb9b8612020-07-13 09:43:13 -0400437
Michael Spang68fcef62021-07-05 21:50:23 -0400438 public_deps += [ _platform_target ]
Kamil Kasperczyk44014022021-03-12 21:18:45 +0100439
Michael Spang68fcef62021-07-05 21:50:23 -0400440 # The platform target needs to include the headers, so allow that here.
441 # It should be considered logically part of this target.
442 allow_circular_includes_from = [
443 _platform_target,
444 "${chip_root}/src/lib/support",
445 ]
Jiacheng Guod8f58a02020-08-19 00:23:40 +0800446 }
Michael Spangefa630b2020-07-08 22:23:08 -0400447} else {
448 group("platform") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800449 public_deps = [ ":platform_buildconfig" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400450 }
451}