blob: a95e083931f027f0be8fb1c375960845dc6b4461 [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
Kamil Kasperczyk44014022021-03-12 21:18:45 +010033if (chip_device_platform == "linux" && chip_mdns != "none") {
Jiacheng Guo5de29292020-10-26 14:41:40 +080034 pkg_config("avahi_client_config") {
35 packages = [ "avahi-client" ]
36 }
37}
38
Jiacheng Guod3dd5e02022-03-30 23:43:12 +080039if (chip_device_platform != "none" && chip_device_platform != "external") {
Michael Spangefa630b2020-07-08 22:23:08 -040040 declare_args() {
41 # Extra header to include in CHIPDeviceConfig.h for project.
42 chip_device_project_config_include = ""
Michael Spangda4c1252020-08-06 10:40:49 -040043
44 # Date the firmware was built.
45 chip_device_config_firmware_build_date = ""
46
47 # Time the firmware was built.
48 chip_device_config_firmware_build_time = ""
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +080049
Jiacheng Guob7598a02021-12-09 23:44:38 +080050 # Use OpenThread ftd or mtd library
51 chip_device_config_thread_ftd = chip_openthread_ftd
52
hnnajh96613742021-01-06 08:05:28 -080053 # Enable including the additional data in the advertisement packets
Shubham Patil175218b2022-01-04 21:31:30 +053054 chip_enable_additional_data_advertising = false
hnnajh846f2f12021-02-18 05:45:15 -080055
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -050056 # Enable default/generic test-mode CommissionableDataProvider in GenericConfigurationManagerImpl
57 # === FOR TRANSITION UNTIL ALL EXAMPLES PROVIDE THEIR OWN ===
58 # Linux platform has already transitioned.
59 chip_use_transitional_commissionable_data_provider =
Hui.Li-TCL48b48c22022-03-25 23:18:10 +080060 chip_device_platform != "linux" && chip_device_platform != "android"
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -050061
Andrei Litvin4ae09b32021-05-11 09:14:27 -040062 # lock tracking: none/log/fatal or auto for a platform-dependent choice
63 chip_stack_lock_tracking = "auto"
Hui.Li-TCL924f36e2021-09-30 20:51:41 +080064
65 # todo: below operates are not work without root permission
66 # pthread_attr_setschedpolicy in GenericPlatformManagerImpl_POSIX.cpp
67 chip_device_config_run_as_root = current_os != "android"
Artur Tyneckib4921fc2022-02-21 17:44:34 +010068
69 # Indication that the CHIP data model is included
70 chip_enable_data_model = false
Michael Spangefa630b2020-07-08 22:23:08 -040071 }
72
Michael Spang732e1c02021-06-14 10:21:18 -040073 if (chip_stack_lock_tracking == "auto") {
Hui.Li-TCL924f36e2021-09-30 20:51:41 +080074 if (chip_device_platform == "linux" || chip_device_platform == "tizen" ||
sungmok shinb3c37992022-03-02 02:55:12 +090075 chip_device_platform == "android" || current_os == "freertos" ||
76 chip_device_platform == "webos") {
Michael Spang732e1c02021-06-14 10:21:18 -040077 # TODO: should be fatal for development. Change once bugs are fixed
Boris Zbarsky17dc4b02022-02-15 08:58:13 -050078 chip_stack_lock_tracking = "fatal"
Michael Spang732e1c02021-06-14 10:21:18 -040079 } else {
80 # TODO: may want to enable at least logging for embedded to find bugs
81 # this needs tuning depending on how many resources various platforms have
82 # available (mainly flash size)
83 chip_stack_lock_tracking = "none"
84 }
85 } else {
86 assert(
87 chip_stack_lock_tracking == "none" ||
88 chip_stack_lock_tracking == "log" ||
89 chip_stack_lock_tracking == "fatal",
90 "Please select a valid value for chip_stack_lock_tracking: auto, none, log, fatal")
91 }
92
Michael Spang1fcb6dd2020-08-24 11:19:04 -040093 buildconfig_header("platform_buildconfig") {
94 header = "CHIPDeviceBuildConfig.h"
95 header_dir = "platform"
Michael Spangefa630b2020-07-08 22:23:08 -040096
Michael Spang1fcb6dd2020-08-24 11:19:04 -040097 chip_with_gio = chip_enable_wifi
98 chip_device_config_enable_wpa = chip_enable_wifi
Michael Spang732e1c02021-06-14 10:21:18 -040099 chip_stack_lock_tracking_log = chip_stack_lock_tracking != "none"
100 chip_stack_lock_tracking_fatal = chip_stack_lock_tracking == "fatal"
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400101 defines = [
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400102 "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}",
103 "CHIP_ENABLE_OPENTHREAD=${chip_enable_openthread}",
Jiacheng Guob7598a02021-12-09 23:44:38 +0800104 "CHIP_DEVICE_CONFIG_THREAD_FTD=${chip_device_config_thread_ftd}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400105 "CHIP_WITH_GIO=${chip_with_gio}",
106 "OPENTHREAD_CONFIG_ENABLE_TOBLE=false",
Michael Spang732e1c02021-06-14 10:21:18 -0400107 "CHIP_STACK_LOCK_TRACKING_ENABLED=${chip_stack_lock_tracking_log}",
108 "CHIP_STACK_LOCK_TRACKING_ERROR_FATAL=${chip_stack_lock_tracking_fatal}",
109 "CHIP_ENABLE_ADDITIONAL_DATA_ADVERTISING=${chip_enable_additional_data_advertising}",
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800110 "CHIP_DEVICE_CONFIG_RUN_AS_ROOT=${chip_device_config_run_as_root}",
Boris Zbarsky7666b042022-04-27 10:19:16 -0400111 "CHIP_DISABLE_PLATFORM_KVS=${chip_disable_platform_kvs}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400112 ]
113
Wootak Junge945d162021-09-13 10:39:32 +0900114 if (chip_device_platform == "linux" || chip_device_platform == "darwin" ||
doru91ca807a22022-04-05 18:44:08 +0300115 chip_device_platform == "tizen" || chip_device_platform == "android" ||
116 chip_device_platform == "k32w0") {
Michael Spange1aa7b12021-03-09 18:08:38 -0500117 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_CHIPOBLE=${chip_enable_ble}" ]
118 }
119
Damian Królik5d00d1c2021-04-07 03:31:43 +0200120 if (chip_enable_nfc) {
doru9101e54b22022-04-14 13:29:13 +0300121 defines += [
122 "CHIP_DEVICE_CONFIG_ENABLE_NFC=1",
123 "CONFIG_CHIP_NFC_COMMISSIONING=1",
124 ]
Damian Królik5d00d1c2021-04-07 03:31:43 +0200125 }
126
Damian Królik79fe72a2021-11-23 10:26:03 +0100127 if (chip_enable_ota_requestor) {
128 defines += [ "CHIP_DEVICE_CONFIG_ENABLE_OTA_REQUESTOR=1" ]
129 }
130
Michael Spangefa630b2020-07-08 22:23:08 -0400131 if (chip_device_project_config_include != "") {
132 defines += [ "CHIP_DEVICE_PROJECT_CONFIG_INCLUDE=${chip_device_project_config_include}" ]
133 }
134 if (chip_device_platform_config_include != "") {
135 defines += [ "CHIP_DEVICE_PLATFORM_CONFIG_INCLUDE=${chip_device_platform_config_include}" ]
136 }
137
Michael Spangda4c1252020-08-06 10:40:49 -0400138 if (chip_device_config_firmware_build_date != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400139 defines += [ "CHIP_DEVICE_CONFIG_FIRWMARE_BUILD_DATE=\"${chip_device_config_firmware_build_date}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400140 }
141 if (chip_device_config_firmware_build_time != "") {
Michael Spang801349e2020-08-10 09:15:04 -0400142 defines += [ "CHIP_DEVICE_CONFIG_FIRMWARE_BUILD_TIME=\"${chip_device_config_firmware_build_time}\"" ]
Michael Spangda4c1252020-08-06 10:40:49 -0400143 }
144
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500145 if (chip_use_transitional_commissionable_data_provider) {
146 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=1" ]
147 } else {
148 defines += [ "CHIP_USE_TRANSITIONAL_COMMISSIONABLE_DATA_PROVIDER=0" ]
149 }
150
Seth Rickard4f0521f2021-01-12 16:06:52 -0600151 if (chip_device_platform == "cc13x2_26x2") {
152 defines += [
153 "CHIP_DEVICE_LAYER_TARGET_CC13X2_26X2=1",
154 "CHIP_DEVICE_LAYER_TARGET=cc13x2_26x2",
155 ]
156 } 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",
160 ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200161 } else if (chip_device_platform == "efr32") {
162 defines += [
163 "CHIP_DEVICE_LAYER_TARGET_EFR32=1",
164 "CHIP_DEVICE_LAYER_TARGET=EFR32",
165 ]
166 } else if (chip_device_platform == "esp32") {
167 defines += [
168 "CHIP_DEVICE_LAYER_TARGET_ESP32=1",
169 "CHIP_DEVICE_LAYER_TARGET=ESP32",
170 ]
Praveen Chandran080ae572021-08-12 07:58:27 -0700171 } else if (chip_device_platform == "p6") {
172 defines += [
173 "CHIP_DEVICE_LAYER_TARGET_P6=1",
174 "CHIP_DEVICE_LAYER_TARGET=P6",
175 ]
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400176 } else if (chip_device_platform == "linux") {
177 defines += [
178 "CHIP_DEVICE_LAYER_TARGET_LINUX=1",
179 "CHIP_DEVICE_LAYER_TARGET=Linux",
Yufeng Wangc23becb2021-09-30 11:18:04 -0700180 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400181 ]
Wootak Junge945d162021-09-13 10:39:32 +0900182 } else if (chip_device_platform == "tizen") {
183 defines += [
184 "CHIP_DEVICE_LAYER_TARGET_TIZEN=1",
185 "CHIP_DEVICE_LAYER_TARGET=Tizen",
186 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
187 ]
188 defines -=
189 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200190 } else if (chip_device_platform == "nrfconnect") {
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400191 defines += [
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200192 "CHIP_DEVICE_LAYER_TARGET_NRFCONNECT=1",
193 "CHIP_DEVICE_LAYER_TARGET=nrfconnect",
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530194 ]
Timothy Maes2478e022021-07-02 04:03:46 +0200195 } else if (chip_device_platform == "qpg") {
Timothy Maesb5b3d382020-10-05 16:59:21 +0200196 defines += [
Timothy Maes2478e022021-07-02 04:03:46 +0200197 "CHIP_DEVICE_LAYER_TARGET_QPG=1",
198 "CHIP_DEVICE_LAYER_TARGET=qpg",
Timothy Maesb5b3d382020-10-05 16:59:21 +0200199 ]
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300200 } else if (chip_device_platform == "k32w0") {
doru9104ac26b2020-10-13 18:23:28 +0300201 defines += [
202 "CHIP_DEVICE_LAYER_TARGET_K32W=1",
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300203 "CHIP_DEVICE_LAYER_TARGET=nxp/k32w/k32w0",
doru9104ac26b2020-10-13 18:23:28 +0300204 ]
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300205 } else if (chip_device_platform == "telink") {
206 defines += [
207 "CHIP_DEVICE_LAYER_TARGET_TELINK=1",
208 "CHIP_DEVICE_LAYER_TARGET=telink",
209 ]
Vincent Coubardcc135602021-06-29 16:58:47 +0100210 } else if (chip_device_platform == "mbed") {
211 defines += [
212 "CHIP_DEVICE_LAYER_TARGET_MBED=1",
213 "CHIP_DEVICE_LAYER_TARGET=mbed",
Artur Tyneckib4921fc2022-02-21 17:44:34 +0100214 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
215 "CHIP_DEVICE_ENABLE_DATA_MODEL=${chip_enable_data_model}",
Vincent Coubardcc135602021-06-29 16:58:47 +0100216 ]
jczhang77736661382022-04-04 21:33:18 +0800217 } else if (chip_device_platform == "bl602") {
218 defines += [
219 "CHIP_DEVICE_LAYER_TARGET_BL602=1",
220 "CHIP_DEVICE_LAYER_TARGET=bouffalolab/BL602",
221 ]
C Freeman79c93152021-08-18 00:20:05 -0400222 } else if (chip_device_platform == "fake") {
223 defines += [
224 "CHIP_DEVICE_LAYER_TARGET_FAKE=1",
225 "CHIP_DEVICE_LAYER_TARGET=fake",
226 ]
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800227 } else if (chip_device_platform == "android") {
228 defines += [
229 "CHIP_DEVICE_LAYER_TARGET_ANDROID=1",
230 "CHIP_DEVICE_LAYER_TARGET=android",
231 ]
pankore544da73c2021-10-19 02:51:16 +0800232 } else if (chip_device_platform == "ameba") {
233 defines += [
234 "CHIP_DEVICE_LAYER_TARGET_AMEBA=1",
235 "CHIP_DEVICE_LAYER_TARGET=Ameba",
pankoree6dab3712021-11-10 01:52:01 +0800236 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
pankore544da73c2021-10-19 02:51:16 +0800237 ]
Todd Chou1af90eb2022-01-21 12:29:29 +0800238 } else if (chip_device_platform == "cyw30739") {
239 defines += [
240 "CHIP_DEVICE_LAYER_TARGET_CYW30739=1",
241 "CHIP_DEVICE_LAYER_TARGET=CYW30739",
242 ]
sungmok shinb3c37992022-03-02 02:55:12 +0900243 } else if (chip_device_platform == "webos") {
244 defines += [
245 "CHIP_DEVICE_LAYER_TARGET_WEBOS=1",
246 "CHIP_DEVICE_LAYER_TARGET=Linux",
247 "CHIP_DEVICE_CONFIG_ENABLE_WIFI=${chip_enable_wifi}",
248 ]
249 defines -=
250 [ "CHIP_DEVICE_CONFIG_ENABLE_WPA=${chip_device_config_enable_wpa}" ]
Kedar Sovani8617e2a2020-08-30 02:33:21 +0530251 }
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400252 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800253} else if (chip_device_platform == "none") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800254 buildconfig_header("platform_buildconfig") {
255 header = "CHIPDeviceBuildConfig.h"
256 header_dir = "platform"
257
258 defines = [
259 "CHIP_DEVICE_LAYER_NONE=1",
260 "CHIP_DEVICE_LAYER_TARGET=NONE",
261 ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400262
263 if (current_os == "android") {
Andrei Litvinb7924632022-03-03 15:29:54 -0500264 defines += [ "EXTERNAL_KEYVALUESTOREMANAGERIMPL_HEADER=\"controller/java/AndroidKeyValueStoreManagerImpl.h\"" ]
Andrei Litvin1274bcf2021-04-09 14:13:37 -0400265 }
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800266 }
Jiacheng Guod3dd5e02022-03-30 23:43:12 +0800267} else {
268 group("platform_buildconfig") {
269 public_deps = [ "${chip_platform_target}:platform_buildconfig" ]
270 }
Jiacheng Guo57945c22020-08-29 03:56:59 +0800271}
Michael Spang1fcb6dd2020-08-24 11:19:04 -0400272
Michael Spang68fcef62021-07-05 21:50:23 -0400273if (chip_device_platform != "none") {
274 group("platform_base") {
275 public_deps = [
276 ":platform_buildconfig",
277 "${chip_root}/src/ble",
278 "${chip_root}/src/inet",
279 "${chip_root}/src/lib/core",
280 "${chip_root}/src/lib/support",
Kamil Kasperczyk838e4892022-02-25 15:43:35 +0100281 "${chip_root}/src/setup_payload:additional_data_payload",
Michael Spang68fcef62021-07-05 21:50:23 -0400282 "${chip_root}/src/system",
283 ]
284
285 public_configs = [ "${chip_root}/src:includes" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400286 }
287
288 static_library("platform") {
289 output_name = "libDeviceLayer"
290
291 sources = [
Michael Spangdb9b8612020-07-13 09:43:13 -0400292 "../include/platform/CHIPDeviceConfig.h",
293 "../include/platform/CHIPDeviceError.h",
294 "../include/platform/CHIPDeviceEvent.h",
295 "../include/platform/CHIPDeviceLayer.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500296 "../include/platform/CommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400297 "../include/platform/ConfigurationManager.h",
298 "../include/platform/ConnectivityManager.h",
Yufeng Wang89aff252021-12-15 11:28:14 -0800299 "../include/platform/DeviceControlServer.h",
Yufeng Wangbb6bb372022-02-25 10:04:29 -0800300 "../include/platform/FailSafeContext.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400301 "../include/platform/GeneralUtils.h",
rgoliverbf60cc22021-01-26 21:15:59 -0500302 "../include/platform/KeyValueStoreManager.h",
Tennessee Carmel-Veilleuxdef18812022-04-04 13:12:25 -0400303 "../include/platform/KvsPersistentStorageDelegate.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400304 "../include/platform/PersistedStorage.h",
305 "../include/platform/PlatformManager.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500306 "../include/platform/TestOnlyCommissionableDataProvider.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400307 "../include/platform/ThreadStackManager.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400308 "../include/platform/internal/BLEManager.h",
309 "../include/platform/internal/CHIPDeviceLayerInternal.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400310 "../include/platform/internal/DeviceNetworkInfo.h",
Pankaj Garg4239bcf2020-10-27 08:41:54 -0700311 "../include/platform/internal/DeviceNetworkProvisioning.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400312 "../include/platform/internal/EventLogging.h",
313 "../include/platform/internal/GenericConfigurationManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400314 "../include/platform/internal/GenericConfigurationManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400315 "../include/platform/internal/GenericConnectivityManagerImpl.h",
316 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400317 "../include/platform/internal/GenericConnectivityManagerImpl_BLE.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400318 "../include/platform/internal/GenericConnectivityManagerImpl_NoBLE.h",
319 "../include/platform/internal/GenericConnectivityManagerImpl_NoThread.h",
Michael Spangdb9b8612020-07-13 09:43:13 -0400320 "../include/platform/internal/GenericConnectivityManagerImpl_NoWiFi.h",
321 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400322 "../include/platform/internal/GenericConnectivityManagerImpl_Thread.ipp",
Yufeng Wang2a1e8bc2020-09-27 23:27:02 -0700323 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400324 "../include/platform/internal/GenericConnectivityManagerImpl_WiFi.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400325 "../include/platform/internal/GenericPlatformManagerImpl.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400326 "../include/platform/internal/GenericPlatformManagerImpl.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400327 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400328 "../include/platform/internal/GenericPlatformManagerImpl_FreeRTOS.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400329 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.h",
Michael Spangfeb81b62022-03-22 14:34:32 -0400330 "../include/platform/internal/GenericPlatformManagerImpl_POSIX.ipp",
331 "../include/platform/internal/GenericPlatformManagerImpl_Zephyr.ipp",
Michael Spangdb9b8612020-07-13 09:43:13 -0400332 "../include/platform/internal/testing/ConfigUnitTest.h",
Tennessee Carmel-Veilleux8f86c432022-03-11 15:49:56 -0500333 "CommissionableDataProvider.cpp",
Yufeng Wang17be4af2021-05-03 21:46:33 -0700334 "DeviceControlServer.cpp",
Yufeng Wang6a551942022-03-30 23:37:40 -0700335 "DeviceInfoProvider.cpp",
Yufeng Wang3e863a92021-11-22 11:41:21 -0800336 "DiagnosticDataProvider.cpp",
Zang MingJie659848c2021-09-03 23:13:45 +0800337 "Entropy.cpp",
Yufeng Wangbb6bb372022-02-25 10:04:29 -0800338 "FailSafeContext.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400339 "GeneralUtils.cpp",
340 "Globals.cpp",
Andrei Litvin4ae09b32021-05-11 09:14:27 -0400341 "LockTracker.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400342 "PersistedStorage.cpp",
Zang MingJie39ff9bf2021-11-05 12:29:08 +0800343 "PlatformEventSupport.cpp",
Michael Spangefa630b2020-07-08 22:23:08 -0400344 ]
345
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500346 # Linux has its own NetworkCommissioningThreadDriver
Abhay Agarwaldf5d0ee2022-05-02 20:00:25 +0530347 if (chip_enable_openthread && chip_device_platform != "linux" &&
348 chip_device_platform != "tizen") {
jmartinez-silabsa92d1a82022-02-07 12:50:17 -0500349 sources += [
350 "OpenThread/GenericNetworkCommissioningThreadDriver.cpp",
351 "OpenThread/GenericNetworkCommissioningThreadDriver.h",
352 ]
353 }
354
Boris Zbarsky444b50b2020-09-23 19:53:06 -0400355 cflags = [ "-Wconversion" ]
356
Michael Spangefa630b2020-07-08 22:23:08 -0400357 public_deps = [
Michael Spang68fcef62021-07-05 21:50:23 -0400358 ":platform_base",
Andrei Litvinf04c4282021-10-20 12:58:43 -0400359 "${chip_root}/src/app:app_buildconfig",
Yufeng Wang551e53f2021-10-26 13:41:18 -0700360 "${chip_root}/src/app/common:cluster-objects",
Zang MingJie659848c2021-09-03 23:13:45 +0800361 "${chip_root}/src/crypto",
Michael Spangefa630b2020-07-08 22:23:08 -0400362 "${chip_root}/src/lib/support",
Michael Spangefa630b2020-07-08 22:23:08 -0400363 ]
364
Seth Rickard4f0521f2021-01-12 16:06:52 -0600365 if (chip_device_platform == "cc13x2_26x2") {
Michael Spang68fcef62021-07-05 21:50:23 -0400366 _platform_target = "cc13x2_26x2"
Seth Rickard4f0521f2021-01-12 16:06:52 -0600367 } else if (chip_device_platform == "darwin") {
Michael Spang68fcef62021-07-05 21:50:23 -0400368 _platform_target = "Darwin"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200369 } else if (chip_device_platform == "efr32") {
Michael Spang68fcef62021-07-05 21:50:23 -0400370 _platform_target = "EFR32"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200371 } else if (chip_device_platform == "esp32") {
Michael Spang68fcef62021-07-05 21:50:23 -0400372 _platform_target = "ESP32"
PetruSicoe0aac8fd2021-10-07 15:52:08 +0300373 } else if (chip_device_platform == "k32w0") {
374 _platform_target = "nxp/k32w/k32w0"
Michael Spang4314d812020-08-07 10:17:09 -0400375 } else if (chip_device_platform == "linux") {
Michael Spang68fcef62021-07-05 21:50:23 -0400376 _platform_target = "Linux"
Rafał Kuźnia90bc94c2020-08-31 19:54:04 +0200377 } else if (chip_device_platform == "nrfconnect") {
Michael Spang68fcef62021-07-05 21:50:23 -0400378 _platform_target = "nrfconnect"
Timothy Maes2478e022021-07-02 04:03:46 +0200379 } else if (chip_device_platform == "qpg") {
Michael Spang68fcef62021-07-05 21:50:23 -0400380 _platform_target = "qpg"
Alexandr Kolosovfc7146c2021-06-09 20:57:36 +0300381 } else if (chip_device_platform == "telink") {
Michael Spang68fcef62021-07-05 21:50:23 -0400382 _platform_target = "telink"
Vincent Coubardcc135602021-06-29 16:58:47 +0100383 } else if (chip_device_platform == "mbed") {
Michael Spang68fcef62021-07-05 21:50:23 -0400384 _platform_target = "mbed"
Wootak Junge945d162021-09-13 10:39:32 +0900385 } else if (chip_device_platform == "tizen") {
386 _platform_target = "Tizen"
Hui.Li-TCL924f36e2021-09-30 20:51:41 +0800387 } else if (chip_device_platform == "android") {
388 _platform_target = "android"
Michael Spang68fcef62021-07-05 21:50:23 -0400389 } else if (chip_device_platform == "external") {
390 _platform_target = chip_platform_target
Praveen Chandran080ae572021-08-12 07:58:27 -0700391 } else if (chip_device_platform == "p6") {
392 _platform_target = "P6"
pankore544da73c2021-10-19 02:51:16 +0800393 } else if (chip_device_platform == "ameba") {
394 _platform_target = "Ameba"
sungmok shinb3c37992022-03-02 02:55:12 +0900395 } else if (chip_device_platform == "webos") {
396 _platform_target = "webos"
jczhang77736661382022-04-04 21:33:18 +0800397 } else if (chip_device_platform == "bl602") {
398 _platform_target = "bouffalolab/BL602"
C Freeman79c93152021-08-18 00:20:05 -0400399 } else if (chip_device_platform == "fake") {
400 _platform_target = "fake"
Todd Chou1af90eb2022-01-21 12:29:29 +0800401 } else if (chip_device_platform == "cyw30739") {
402 _platform_target = "CYW30739"
Michael Spang68fcef62021-07-05 21:50:23 -0400403 } else {
404 assert(false, "Unknown chip_device_platform: ${chip_device_platform}")
Michael Spangefa630b2020-07-08 22:23:08 -0400405 }
Michael Spangdb9b8612020-07-13 09:43:13 -0400406
Michael Spang68fcef62021-07-05 21:50:23 -0400407 public_deps += [ _platform_target ]
Kamil Kasperczyk44014022021-03-12 21:18:45 +0100408
Michael Spang68fcef62021-07-05 21:50:23 -0400409 # The platform target needs to include the headers, so allow that here.
410 # It should be considered logically part of this target.
411 allow_circular_includes_from = [
412 _platform_target,
413 "${chip_root}/src/lib/support",
414 ]
Jiacheng Guod8f58a02020-08-19 00:23:40 +0800415 }
Michael Spangefa630b2020-07-08 22:23:08 -0400416} else {
417 group("platform") {
Jiacheng Guoe4ac46a2020-11-11 00:04:34 +0800418 public_deps = [ ":platform_buildconfig" ]
Michael Spangefa630b2020-07-08 22:23:08 -0400419 }
420}