• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2//  Copyright (c) 2021, The OpenThread Authors.
3//  All rights reserved.
4//
5//  Redistribution and use in source and binary forms, with or without
6//  modification, are permitted provided that the following conditions are met:
7//  1. Redistributions of source code must retain the above copyright
8//     notice, this list of conditions and the following disclaimer.
9//  2. Redistributions in binary form must reproduce the above copyright
10//     notice, this list of conditions and the following disclaimer in the
11//     documentation and/or other materials provided with the distribution.
12//  3. Neither the name of the copyright holder nor the
13//     names of its contributors may be used to endorse or promote products
14//     derived from this software without specific prior written permission.
15//
16//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17//  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19//  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20//  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21//  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22//  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23//  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24//  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25//  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26//  POSSIBILITY OF SUCH DAMAGE.
27//
28
29package {
30    default_team: "trendy_team_fwk_thread_network",
31    default_applicable_licenses: ["external_openthread_license"],
32}
33
34// Added automatically by a large-scale-change that took the approach of
35// 'apply every license found to every target'. While this makes sure we respect
36// every license restriction, it may not be entirely correct.
37//
38// e.g. GPL in an MIT project might only apply to the contrib/ directory.
39//
40// Please consider splitting the single license below into multiple licenses,
41// taking care not to lose any license_kind information, and overriding the
42// default license using the 'licenses: [...]' property on targets as needed.
43//
44// For unused files, consider creating a 'fileGroup' with "//visibility:private"
45// to attach the license to, and including a comment whether the files may be
46// used in the current project.
47//
48// large-scale-change included anything that looked like it might be a license
49// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
50//
51// Please consider removing redundant or irrelevant files from 'license_text:'.
52// See: http://go/android-license-faq
53license {
54    name: "external_openthread_license",
55    visibility: [":__subpackages__"],
56    license_kinds: [
57        "SPDX-license-identifier-Apache-2.0",
58        "SPDX-license-identifier-BSD",
59        "SPDX-license-identifier-BSD-3-Clause",
60        "SPDX-license-identifier-GPL",
61        "SPDX-license-identifier-GPL-2.0",
62        "SPDX-license-identifier-LGPL",
63        "SPDX-license-identifier-MIT",
64        "legacy_unencumbered",
65    ],
66    license_text: [
67        "LICENSE",
68        "NOTICE",
69    ],
70}
71
72cc_defaults {
73    name: "ot_posix_cflags_defaults",
74    cflags: [
75        "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"",
76        "-DOPENTHREAD_CONFIG_FILE=\"src/android/openthread-android-config.h\"",
77        "-DOPENTHREAD_PROJECT_LIB_CONFIG_FILE=\"src/android/openthread-android-spinel-config.h\"",
78        "-DOPENTHREAD_FTD=1",
79        "-DOPENTHREAD_POSIX=1",
80        "-DOPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE=1",
81        "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"src/android/openthread-core-android-config.h\"",
82        "-DOPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1",
83        "-DOPENTHREAD_CONFIG_JOINER_ENABLE=1",
84        "-DPACKAGE=\"openthread\"",
85        "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"",
86        "-DPACKAGE_NAME=\"OPENTHREAD\"",
87        "-DPACKAGE_TARNAME=\"openthread\"",
88        "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"",
89        "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"",
90        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=0",
91        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE=1",
92    ],
93}
94
95genrule {
96    name: "ot_version_header",
97    cmd: "$(location src/android/config-android-version-gen.sh) < $(in) > $(out)",
98    srcs: ["src/android/openthread-config-android-version.h.in"],
99    out: ["openthread-config-android-version.h"],
100    tool_files: [
101        "src/android/config-android-version-gen.sh",
102    ],
103}
104
105filegroup {
106    name: "openthread_core_srcs",
107    srcs: [
108        "src/core/api/backbone_router_api.cpp",
109        "src/core/api/backbone_router_ftd_api.cpp",
110        "src/core/api/border_agent_api.cpp",
111        "src/core/api/border_router_api.cpp",
112        "src/core/api/border_routing_api.cpp",
113        "src/core/api/channel_manager_api.cpp",
114        "src/core/api/channel_monitor_api.cpp",
115        "src/core/api/child_supervision_api.cpp",
116        "src/core/api/coap_api.cpp",
117        "src/core/api/coap_secure_api.cpp",
118        "src/core/api/commissioner_api.cpp",
119        "src/core/api/crypto_api.cpp",
120        "src/core/api/dataset_api.cpp",
121        "src/core/api/dataset_ftd_api.cpp",
122        "src/core/api/dataset_updater_api.cpp",
123        "src/core/api/diags_api.cpp",
124        "src/core/api/dns_api.cpp",
125        "src/core/api/dns_server_api.cpp",
126        "src/core/api/error_api.cpp",
127        "src/core/api/heap_api.cpp",
128        "src/core/api/history_tracker_api.cpp",
129        "src/core/api/icmp6_api.cpp",
130        "src/core/api/instance_api.cpp",
131        "src/core/api/ip6_api.cpp",
132        "src/core/api/jam_detection_api.cpp",
133        "src/core/api/joiner_api.cpp",
134        "src/core/api/link_api.cpp",
135        "src/core/api/link_metrics_api.cpp",
136        "src/core/api/link_raw_api.cpp",
137        "src/core/api/logging_api.cpp",
138        "src/core/api/mesh_diag_api.cpp",
139        "src/core/api/message_api.cpp",
140        "src/core/api/multi_radio_api.cpp",
141        "src/core/api/nat64_api.cpp",
142        "src/core/api/netdata_api.cpp",
143        "src/core/api/netdata_publisher_api.cpp",
144        "src/core/api/netdiag_api.cpp",
145        "src/core/api/network_time_api.cpp",
146        "src/core/api/ping_sender_api.cpp",
147        "src/core/api/radio_stats_api.cpp",
148        "src/core/api/random_crypto_api.cpp",
149        "src/core/api/random_noncrypto_api.cpp",
150        "src/core/api/server_api.cpp",
151        "src/core/api/sntp_api.cpp",
152        "src/core/api/srp_client_api.cpp",
153        "src/core/api/srp_client_buffers_api.cpp",
154        "src/core/api/srp_server_api.cpp",
155        "src/core/api/tasklet_api.cpp",
156        "src/core/api/tcp_api.cpp",
157        "src/core/api/tcp_ext_api.cpp",
158        "src/core/api/thread_api.cpp",
159        "src/core/api/thread_ftd_api.cpp",
160        "src/core/api/trel_api.cpp",
161        "src/core/api/udp_api.cpp",
162        "src/core/api/verhoeff_checksum_api.cpp",
163        "src/core/backbone_router/backbone_tmf.cpp",
164        "src/core/backbone_router/bbr_leader.cpp",
165        "src/core/backbone_router/bbr_local.cpp",
166        "src/core/backbone_router/bbr_manager.cpp",
167        "src/core/backbone_router/multicast_listeners_table.cpp",
168        "src/core/backbone_router/ndproxy_table.cpp",
169        "src/core/border_router/infra_if.cpp",
170        "src/core/border_router/routing_manager.cpp",
171        "src/core/coap/coap.cpp",
172        "src/core/coap/coap_message.cpp",
173        "src/core/coap/coap_secure.cpp",
174        "src/core/common/appender.cpp",
175        "src/core/common/binary_search.cpp",
176        "src/core/common/crc.cpp",
177        "src/core/common/data.cpp",
178        "src/core/common/error.cpp",
179        "src/core/common/frame_builder.cpp",
180        "src/core/common/frame_data.cpp",
181        "src/core/common/heap.cpp",
182        "src/core/common/heap_data.cpp",
183        "src/core/common/heap_string.cpp",
184        "src/core/common/log.cpp",
185        "src/core/common/message.cpp",
186        "src/core/common/notifier.cpp",
187        "src/core/common/offset_range.cpp",
188        "src/core/common/preference.cpp",
189        "src/core/common/random.cpp",
190        "src/core/common/settings.cpp",
191        "src/core/common/string.cpp",
192        "src/core/common/tasklet.cpp",
193        "src/core/common/time_ticker.cpp",
194        "src/core/common/timer.cpp",
195        "src/core/common/tlvs.cpp",
196        "src/core/common/trickle_timer.cpp",
197        "src/core/common/uptime.cpp",
198        "src/core/crypto/aes_ccm.cpp",
199        "src/core/crypto/aes_ecb.cpp",
200        "src/core/crypto/crypto_platform.cpp",
201        "src/core/crypto/hkdf_sha256.cpp",
202        "src/core/crypto/hmac_sha256.cpp",
203        "src/core/crypto/mbedtls.cpp",
204        "src/core/crypto/sha256.cpp",
205        "src/core/crypto/storage.cpp",
206        "src/core/diags/factory_diags.cpp",
207        "src/core/instance/instance.cpp",
208        "src/core/mac/channel_mask.cpp",
209        "src/core/mac/data_poll_handler.cpp",
210        "src/core/mac/data_poll_sender.cpp",
211        "src/core/mac/link_raw.cpp",
212        "src/core/mac/mac.cpp",
213        "src/core/mac/mac_filter.cpp",
214        "src/core/mac/mac_frame.cpp",
215        "src/core/mac/mac_links.cpp",
216        "src/core/mac/mac_types.cpp",
217        "src/core/mac/mac_header_ie.cpp",
218        "src/core/mac/sub_mac.cpp",
219        "src/core/mac/sub_mac_callbacks.cpp",
220        "src/core/mac/wakeup_tx_scheduler.cpp",
221        "src/core/meshcop/announce_begin_client.cpp",
222        "src/core/meshcop/border_agent.cpp",
223        "src/core/meshcop/commissioner.cpp",
224        "src/core/meshcop/dataset.cpp",
225        "src/core/meshcop/dataset_manager.cpp",
226        "src/core/meshcop/dataset_manager_ftd.cpp",
227        "src/core/meshcop/dataset_updater.cpp",
228        "src/core/meshcop/energy_scan_client.cpp",
229        "src/core/meshcop/extended_panid.cpp",
230        "src/core/meshcop/joiner.cpp",
231        "src/core/meshcop/joiner_router.cpp",
232        "src/core/meshcop/meshcop.cpp",
233        "src/core/meshcop/meshcop_leader.cpp",
234        "src/core/meshcop/meshcop_tlvs.cpp",
235        "src/core/meshcop/network_name.cpp",
236        "src/core/meshcop/panid_query_client.cpp",
237        "src/core/meshcop/secure_transport.cpp",
238        "src/core/meshcop/timestamp.cpp",
239        "src/core/net/checksum.cpp",
240        "src/core/net/dhcp6_client.cpp",
241        "src/core/net/dhcp6_server.cpp",
242        "src/core/net/dns_client.cpp",
243        "src/core/net/dns_dso.cpp",
244        "src/core/net/dns_platform.cpp",
245        "src/core/net/dns_types.cpp",
246        "src/core/net/dnssd_server.cpp",
247        "src/core/net/icmp6.cpp",
248        "src/core/net/ip4_types.cpp",
249        "src/core/net/ip6.cpp",
250        "src/core/net/ip6_address.cpp",
251        "src/core/net/ip6_filter.cpp",
252        "src/core/net/ip6_headers.cpp",
253        "src/core/net/ip6_mpl.cpp",
254        "src/core/net/nat64_translator.cpp",
255        "src/core/net/nd6.cpp",
256        "src/core/net/nd_agent.cpp",
257        "src/core/net/netif.cpp",
258        "src/core/net/sntp_client.cpp",
259        "src/core/net/socket.cpp",
260        "src/core/net/srp_client.cpp",
261        "src/core/net/srp_server.cpp",
262        "src/core/net/tcp6.cpp",
263        "src/core/net/tcp6_ext.cpp",
264        "src/core/net/udp6.cpp",
265        "src/core/radio/radio.cpp",
266        "src/core/radio/radio_callbacks.cpp",
267        "src/core/radio/radio_platform.cpp",
268        "src/core/radio/trel_interface.cpp",
269        "src/core/radio/trel_link.cpp",
270        "src/core/radio/trel_packet.cpp",
271        "src/core/thread/address_resolver.cpp",
272        "src/core/thread/announce_begin_server.cpp",
273        "src/core/thread/announce_sender.cpp",
274        "src/core/thread/anycast_locator.cpp",
275        "src/core/thread/child.cpp",
276        "src/core/thread/child_supervision.cpp",
277        "src/core/thread/child_table.cpp",
278        "src/core/thread/csl_tx_scheduler.cpp",
279        "src/core/thread/discover_scanner.cpp",
280        "src/core/thread/dua_manager.cpp",
281        "src/core/thread/energy_scan_server.cpp",
282        "src/core/thread/indirect_sender.cpp",
283        "src/core/thread/key_manager.cpp",
284        "src/core/thread/link_metrics.cpp",
285        "src/core/thread/link_metrics_types.cpp",
286        "src/core/thread/link_quality.cpp",
287        "src/core/thread/lowpan.cpp",
288        "src/core/thread/mesh_forwarder.cpp",
289        "src/core/thread/mesh_forwarder_ftd.cpp",
290        "src/core/thread/mesh_forwarder_mtd.cpp",
291        "src/core/thread/mle.cpp",
292        "src/core/thread/mle_router.cpp",
293        "src/core/thread/mle_tlvs.cpp",
294        "src/core/thread/mle_types.cpp",
295        "src/core/thread/mlr_manager.cpp",
296        "src/core/thread/neighbor.cpp",
297        "src/core/thread/neighbor_table.cpp",
298        "src/core/thread/network_data.cpp",
299        "src/core/thread/network_data_leader.cpp",
300        "src/core/thread/network_data_leader_ftd.cpp",
301        "src/core/thread/network_data_local.cpp",
302        "src/core/thread/network_data_notifier.cpp",
303        "src/core/thread/network_data_publisher.cpp",
304        "src/core/thread/network_data_service.cpp",
305        "src/core/thread/network_data_tlvs.cpp",
306        "src/core/thread/network_data_types.cpp",
307        "src/core/thread/network_diagnostic.cpp",
308        "src/core/thread/network_diagnostic_tlvs.cpp",
309        "src/core/thread/panid_query_server.cpp",
310        "src/core/thread/radio_selector.cpp",
311        "src/core/thread/router.cpp",
312        "src/core/thread/router_table.cpp",
313        "src/core/thread/src_match_controller.cpp",
314        "src/core/thread/thread_netif.cpp",
315        "src/core/thread/time_sync_service.cpp",
316        "src/core/thread/tmf.cpp",
317        "src/core/thread/uri_paths.cpp",
318        "src/core/utils/channel_manager.cpp",
319        "src/core/utils/channel_monitor.cpp",
320        "src/core/utils/flash.cpp",
321        "src/core/utils/heap.cpp",
322        "src/core/utils/history_tracker.cpp",
323        "src/core/utils/jam_detector.cpp",
324        "src/core/utils/mesh_diag.cpp",
325        "src/core/utils/otns.cpp",
326        "src/core/utils/parse_cmdline.cpp",
327        "src/core/utils/ping_sender.cpp",
328        "src/core/utils/power_calibration.cpp",
329        "src/core/utils/slaac_address.cpp",
330        "src/core/utils/srp_client_buffers.cpp",
331        "src/core/utils/verhoeff_checksum.cpp",
332    ],
333}
334
335filegroup {
336    name: "openthread_cli_srcs",
337    srcs: [
338        "src/cli/cli.cpp",
339        "src/cli/cli_bbr.cpp",
340        "src/cli/cli_br.cpp",
341        "src/cli/cli_coap.cpp",
342        "src/cli/cli_coap_secure.cpp",
343        "src/cli/cli_commissioner.cpp",
344        "src/cli/cli_dataset.cpp",
345        "src/cli/cli_dns.cpp",
346        "src/cli/cli_history.cpp",
347        "src/cli/cli_joiner.cpp",
348        "src/cli/cli_link_metrics.cpp",
349        "src/cli/cli_mac_filter.cpp",
350        "src/cli/cli_mesh_diag.cpp",
351        "src/cli/cli_network_data.cpp",
352        "src/cli/cli_ping.cpp",
353        "src/cli/cli_srp_client.cpp",
354        "src/cli/cli_srp_server.cpp",
355        "src/cli/cli_tcp.cpp",
356        "src/cli/cli_udp.cpp",
357        "src/cli/cli_utils.cpp",
358    ],
359}
360
361filegroup {
362    name: "openthread_ncp_srcs",
363    srcs: [
364        "src/ncp/changed_props_set.cpp",
365        "src/ncp/ncp_base.cpp",
366        "src/ncp/ncp_base_dispatcher.cpp",
367        "src/ncp/ncp_base_radio.cpp",
368        "src/ncp/ncp_spi.cpp",
369        "src/ncp/ncp_hdlc.cpp",
370    ],
371}
372
373filegroup {
374    name: "openthread_simulation_srcs",
375    srcs: [
376        "examples/platforms/simulation/alarm.c",
377        "examples/platforms/simulation/crypto.c",
378        "examples/platforms/simulation/diag.c",
379        "examples/platforms/simulation/entropy.c",
380        "examples/platforms/simulation/flash.c",
381        "examples/platforms/simulation/infra_if.c",
382        "examples/platforms/simulation/misc.c",
383        "examples/platforms/simulation/radio.c",
384        "examples/platforms/simulation/simul_utils.c",
385        "examples/platforms/simulation/spi-stubs.c",
386        "examples/platforms/simulation/system.c",
387        "examples/platforms/simulation/trel.c",
388        "examples/platforms/simulation/uart.c",
389        "examples/platforms/utils/link_metrics.cpp",
390        "examples/platforms/utils/mac_frame.cpp",
391        "examples/platforms/utils/settings_ram.c",
392        "examples/platforms/utils/soft_source_match_table.c",
393        "src/android/logging.c",
394    ],
395}
396
397filegroup {
398    name: "openthread_mbedtls_srcs",
399    srcs: [
400        "third_party/mbedtls/repo/library/aes.c",
401        "third_party/mbedtls/repo/library/asn1parse.c",
402        "third_party/mbedtls/repo/library/asn1write.c",
403        "third_party/mbedtls/repo/library/base64.c",
404        "third_party/mbedtls/repo/library/bignum_core.c",
405        "third_party/mbedtls/repo/library/bignum.c",
406        "third_party/mbedtls/repo/library/ccm.c",
407        "third_party/mbedtls/repo/library/cipher.c",
408        "third_party/mbedtls/repo/library/cipher_wrap.c",
409        "third_party/mbedtls/repo/library/cmac.c",
410        "third_party/mbedtls/repo/library/constant_time.c",
411        "third_party/mbedtls/repo/library/ctr_drbg.c",
412        "third_party/mbedtls/repo/library/debug.c",
413        "third_party/mbedtls/repo/library/ecdh.c",
414        "third_party/mbedtls/repo/library/ecdsa.c",
415        "third_party/mbedtls/repo/library/ecjpake.c",
416        "third_party/mbedtls/repo/library/ecp.c",
417        "third_party/mbedtls/repo/library/ecp_curves.c",
418        "third_party/mbedtls/repo/library/entropy.c",
419        "third_party/mbedtls/repo/library/entropy_poll.c",
420        "third_party/mbedtls/repo/library/hmac_drbg.c",
421        "third_party/mbedtls/repo/library/md.c",
422        "third_party/mbedtls/repo/library/memory_buffer_alloc.c",
423        "third_party/mbedtls/repo/library/oid.c",
424        "third_party/mbedtls/repo/library/pem.c",
425        "third_party/mbedtls/repo/library/pk.c",
426        "third_party/mbedtls/repo/library/pk_ecc.c",
427        "third_party/mbedtls/repo/library/pk_wrap.c",
428        "third_party/mbedtls/repo/library/pkparse.c",
429        "third_party/mbedtls/repo/library/pkwrite.c",
430        "third_party/mbedtls/repo/library/platform.c",
431        "third_party/mbedtls/repo/library/platform_util.c",
432        "third_party/mbedtls/repo/library/sha256.c",
433        "third_party/mbedtls/repo/library/ssl_ciphersuites.c",
434        "third_party/mbedtls/repo/library/ssl_client.c",
435        "third_party/mbedtls/repo/library/ssl_cookie.c",
436        "third_party/mbedtls/repo/library/ssl_msg.c",
437        "third_party/mbedtls/repo/library/ssl_ticket.c",
438        "third_party/mbedtls/repo/library/ssl_tls.c",
439        "third_party/mbedtls/repo/library/ssl_tls12_client.c",
440        "third_party/mbedtls/repo/library/ssl_tls12_server.c",
441        "third_party/mbedtls/repo/library/ssl_tls13_client.c",
442        "third_party/mbedtls/repo/library/threading.c",
443        "third_party/mbedtls/repo/library/x509.c",
444        "third_party/mbedtls/repo/library/x509_crt.c",
445    ],
446}
447
448filegroup {
449    name: "openthread_platform_posix_srcs",
450    srcs: [
451        "src/android/logging.c",
452        "src/posix/platform/alarm.cpp",
453        "src/posix/platform/backtrace.cpp",
454        "src/posix/platform/configuration.cpp",
455        "src/posix/platform/config_file.cpp",
456        "src/posix/platform/daemon.cpp",
457        "src/posix/platform/entropy.cpp",
458        "src/posix/platform/firewall.cpp",
459        "src/posix/platform/hdlc_interface.cpp",
460        "src/posix/platform/infra_if.cpp",
461        "src/posix/platform/mainloop.cpp",
462        "src/posix/platform/memory.cpp",
463        "src/posix/platform/misc.cpp",
464        "src/posix/platform/multicast_routing.cpp",
465        "src/posix/platform/netif.cpp",
466        "src/posix/platform/power.cpp",
467        "src/posix/platform/radio.cpp",
468        "src/posix/platform/radio_url.cpp",
469        "src/posix/platform/rcp_caps_diag.cpp",
470        "src/posix/platform/resolver.cpp",
471        "src/posix/platform/settings.cpp",
472        "src/posix/platform/settings_file.cpp",
473        "src/posix/platform/spi_interface.cpp",
474        "src/posix/platform/spinel_manager.cpp",
475        "src/posix/platform/system.cpp",
476        "src/posix/platform/tmp_storage.cpp",
477        "src/posix/platform/trel.cpp",
478        "src/posix/platform/udp.cpp",
479        "src/posix/platform/utils.cpp",
480    ],
481}
482
483cc_library_static {
484    name: "ot-core",
485    apex_available: ["com.android.tethering"],
486    min_sdk_version: "30",
487    defaults: [
488        "ot-daemon-debuggable-cc-defaults",
489        "ot_posix_cflags_defaults",
490    ],
491    generated_headers: ["ot_version_header"],
492
493    local_include_dirs: [
494        "include",
495        "src",
496        "src/android/thread_network_hal",
497        "src/cli",
498        "src/core",
499        "src/include",
500        "src/ncp",
501        "src/posix/platform",
502        "src/posix/platform/include",
503        "third_party",
504        "third_party/mbedtls",
505        "third_party/mbedtls/repo/include",
506    ],
507
508    export_include_dirs: [
509        "include",
510        "src",
511    ],
512
513    cppflags: [
514        "-Wno-non-virtual-dtor",
515        // Background: the HAL client implementation requires features which
516        // are available on only 31+, but the Tethering module requires the
517        // ot-daemon binary to support 30+.
518        // It's safe to suppress this warning because ot-daemon will never
519        // run below Android U (34).
520        "-Wno-unguarded-availability",
521        "-Wno-c99-extensions",
522    ],
523
524    vintf_fragments: ["src/android/thread_network_hal/device_manifest.xml"],
525    shared_libs: [
526        "libbase",
527        "libcutils",
528        "libutils",
529        "libbinder_ndk",
530        "android.hardware.threadnetwork-V1-ndk",
531    ],
532
533    srcs: [
534        ":openthread_core_srcs",
535        ":openthread_mbedtls_srcs",
536        ":openthread_platform_posix_srcs",
537        "src/android/thread_network_hal/hal_interface.cpp",
538        "src/android/thread_network_hal/vendor_interface.cpp",
539        "src/lib/hdlc/hdlc.cpp",
540        "src/lib/platform/exit_code.c",
541        "src/lib/spinel/logger.cpp",
542        "src/lib/spinel/radio_spinel.cpp",
543        "src/lib/spinel/spinel_buffer.cpp",
544        "src/lib/spinel/spinel_decoder.cpp",
545        "src/lib/spinel/spinel_driver.cpp",
546        "src/lib/spinel/spinel_encoder.cpp",
547        "src/lib/spinel/spinel_helper.cpp",
548        "src/lib/spinel/spinel_prop_codec.cpp",
549        "src/lib/spinel/spinel.c",
550        "src/lib/url/url.cpp",
551    ],
552}
553
554cc_library_static {
555    name: "libopenthread-cli",
556    apex_available: ["com.android.tethering"],
557    min_sdk_version: "30",
558    defaults: [
559        "ot-daemon-debuggable-cc-defaults",
560        "ot_posix_cflags_defaults",
561    ],
562    generated_headers: ["ot_version_header"],
563
564    local_include_dirs: [
565        "include",
566        "src",
567        "src/cli",
568        "src/core",
569        "src/include",
570        "src/posix/platform",
571        "src/posix/platform/include",
572        "third_party/mbedtls",
573        "third_party/mbedtls/repo/include",
574    ],
575
576    cflags: [
577        "-DOPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE=3500",
578        "-DOPENTHREAD_CONFIG_CLI_UART_RX_BUFFER_SIZE=3500",
579        "-DOPENTHREAD_CONFIG_UART_CLI_RAW=1",
580    ],
581
582    cppflags: [
583        "-std=c++11",
584        "-Wno-c99-extensions",
585    ],
586
587    srcs: [
588        "src/cli/cli.cpp",
589        "src/cli/cli_bbr.cpp",
590        "src/cli/cli_br.cpp",
591        "src/cli/cli_coap.cpp",
592        "src/cli/cli_coap_secure.cpp",
593        "src/cli/cli_commissioner.cpp",
594        "src/cli/cli_dataset.cpp",
595        "src/cli/cli_dns.cpp",
596        "src/cli/cli_history.cpp",
597        "src/cli/cli_joiner.cpp",
598        "src/cli/cli_link_metrics.cpp",
599        "src/cli/cli_mac_filter.cpp",
600        "src/cli/cli_mesh_diag.cpp",
601        "src/cli/cli_network_data.cpp",
602        "src/cli/cli_ping.cpp",
603        "src/cli/cli_srp_client.cpp",
604        "src/cli/cli_srp_server.cpp",
605        "src/cli/cli_tcp.cpp",
606        "src/cli/cli_udp.cpp",
607        "src/cli/cli_utils.cpp",
608    ],
609}
610
611cc_binary {
612    name: "ot-ctl",
613    defaults: ["ot_posix_cflags_defaults"],
614    generated_headers: ["ot_version_header"],
615
616    local_include_dirs: [
617        "include",
618        "src/",
619        "src/core",
620        "src/include",
621        "src/posix/platform",
622        "src/posix/platform/include",
623    ],
624
625    srcs: ["src/posix/client.cpp"],
626}
627
628cc_defaults {
629    name: "ot_rcp_cflags_defaults",
630    cflags: [
631        "-DOPENTHREAD_RADIO=1",
632    ],
633}
634
635cc_defaults {
636    name: "ot_simulation_cflags_defaults",
637
638    local_include_dirs: [
639        "examples/platforms/simulation",
640        "examples/platforms",
641        "include",
642        "src",
643        "src/cli",
644        "src/core",
645        "src/include",
646        "src/ncp",
647        "src/lib/hdlc",
648        "third_party",
649        "third_party/mbedtls",
650        "third_party/mbedtls/repo/include",
651    ],
652
653    export_include_dirs: [
654        "include",
655        "src",
656    ],
657
658    cflags: [
659        "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"",
660        "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1",
661        "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1",
662        "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1",
663        "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1",
664        "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"",
665        "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1",
666        "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1",
667        "-DOPENTHREAD_CONFIG_MLR_ENABLE=1",
668        "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1",
669        "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1",
670        "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1",
671        "-DOPENTHREAD_CONFIG_SRP_SERVER_ENABLE=1",
672        "-DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1",
673        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0",
674        "-DOPENTHREAD_EXAMPLES_SIMULATION=1",
675        "-DOPENTHREAD_CONFIG_TCP_ENABLE=0",
676        "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"examples/platforms/simulation/openthread-core-simulation-config.h\"",
677        "-DOPENTHREAD_SETTINGS_RAM=1",
678        "-DOPENTHREAD_SIMULATION_MAX_NETWORK_SIZE=128",
679        "-DPACKAGE=\"openthread\"",
680        "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"",
681        "-DPACKAGE_NAME=\"OPENTHREAD\"",
682        "-DPACKAGE_TARNAME=\"openthread\"",
683        "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"",
684        "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"",
685        "-Wno-implicit-fallthrough",
686    ],
687}
688
689cc_library_static {
690    name: "openthread-simulation",
691    vendor_available: true,
692
693    defaults: [
694        "ot_rcp_cflags_defaults",
695        "ot_simulation_cflags_defaults",
696    ],
697
698    static_libs: [
699        "libutils",
700    ],
701
702    srcs: [
703        ":openthread_simulation_srcs",
704        "src/lib/platform/exit_code.c",
705        "third_party/mbedtls/repo/library/aes.c",
706        "third_party/mbedtls/repo/library/asn1parse.c",
707        "third_party/mbedtls/repo/library/asn1write.c",
708        "third_party/mbedtls/repo/library/base64.c",
709        "third_party/mbedtls/repo/library/bignum_core.c",
710        "third_party/mbedtls/repo/library/bignum.c",
711        "third_party/mbedtls/repo/library/ccm.c",
712        "third_party/mbedtls/repo/library/cipher.c",
713        "third_party/mbedtls/repo/library/cipher_wrap.c",
714        "third_party/mbedtls/repo/library/cmac.c",
715        "third_party/mbedtls/repo/library/ctr_drbg.c",
716        "third_party/mbedtls/repo/library/debug.c",
717        "third_party/mbedtls/repo/library/entropy.c",
718        "third_party/mbedtls/repo/library/entropy_poll.c",
719        "third_party/mbedtls/repo/library/hmac_drbg.c",
720        "third_party/mbedtls/repo/library/md.c",
721        "third_party/mbedtls/repo/library/memory_buffer_alloc.c",
722        "third_party/mbedtls/repo/library/oid.c",
723        "third_party/mbedtls/repo/library/platform.c",
724        "third_party/mbedtls/repo/library/platform_util.c",
725        "third_party/mbedtls/repo/library/sha256.c",
726    ],
727
728    cflags: [
729        "-D_BSD_SOURCE=1",
730        "-D_DEFAULT_SOURCE=1",
731    ],
732}
733
734cc_library_static {
735    name: "openthread-radio",
736    vendor_available: true,
737
738    defaults: [
739        "ot_rcp_cflags_defaults",
740        "ot_simulation_cflags_defaults",
741    ],
742
743    generated_headers: ["ot_version_header"],
744    shared_libs: [
745        "libcutils",
746    ],
747
748    srcs: [
749        "src/core/api/diags_api.cpp",
750        "src/core/api/error_api.cpp",
751        "src/core/api/instance_api.cpp",
752        "src/core/api/link_raw_api.cpp",
753        "src/core/api/logging_api.cpp",
754        "src/core/api/random_noncrypto_api.cpp",
755        "src/core/api/tasklet_api.cpp",
756        "src/core/common/binary_search.cpp",
757        "src/core/common/error.cpp",
758        "src/core/common/frame_builder.cpp",
759        "src/core/common/log.cpp",
760        "src/core/common/random.cpp",
761        "src/core/common/string.cpp",
762        "src/core/common/tasklet.cpp",
763        "src/core/common/timer.cpp",
764        "src/core/common/uptime.cpp",
765        "src/core/crypto/aes_ccm.cpp",
766        "src/core/crypto/aes_ecb.cpp",
767        "src/core/crypto/crypto_platform.cpp",
768        "src/core/crypto/storage.cpp",
769        "src/core/diags/factory_diags.cpp",
770        "src/core/instance/instance.cpp",
771        "src/core/mac/link_raw.cpp",
772        "src/core/mac/mac_frame.cpp",
773        "src/core/mac/mac_types.cpp",
774        "src/core/mac/mac_header_ie.cpp",
775        "src/core/mac/sub_mac.cpp",
776        "src/core/mac/sub_mac_callbacks.cpp",
777        "src/core/radio/radio.cpp",
778        "src/core/radio/radio_callbacks.cpp",
779        "src/core/radio/radio_platform.cpp",
780        "src/core/thread/link_quality.cpp",
781        "src/core/utils/parse_cmdline.cpp",
782        "src/core/utils/power_calibration.cpp",
783    ],
784}
785
786cc_library_static {
787    name: "openthread-hdlc",
788    vendor_available: true,
789    defaults: [
790        "ot_rcp_cflags_defaults",
791        "ot_simulation_cflags_defaults",
792    ],
793    export_include_dirs: [
794        "include",
795        "src",
796    ],
797    srcs: [
798        "src/lib/hdlc/hdlc.cpp",
799    ],
800}
801
802cc_library_static {
803    name: "openthread-spi",
804    vendor_available: true,
805    local_include_dirs: [
806        "include",
807        "src",
808        "src/core",
809        "src/include",
810        "src/lib/platform",
811        "src/posix/platform",
812        "src/posix/platform/include",
813    ],
814    export_include_dirs: [
815        "include",
816        "src/core",
817        "src/include",
818        "src/posix/platform",
819        "src/posix/platform/include",
820    ],
821
822    cflags: [
823        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1",
824    ],
825
826    srcs: [
827        "src/posix/platform/spi_interface.cpp",
828    ],
829}
830
831cc_library_static {
832    name: "openthread-url",
833    vendor_available: true,
834    local_include_dirs: [
835        "include",
836        "src",
837        "src/core",
838        "src/include",
839        "src/lib/url",
840    ],
841    export_include_dirs: [
842        "include",
843        "src",
844    ],
845    srcs: [
846        "src/lib/url/url.cpp",
847    ],
848}
849
850cc_library_static {
851    name: "openthread-platform",
852    vendor_available: true,
853    local_include_dirs: [
854        "include",
855        "src",
856        "src/core",
857        "src/include",
858        "src/lib/platform",
859    ],
860    export_include_dirs: [
861        "include",
862        "src",
863    ],
864    srcs: [
865        "src/lib/platform/exit_code.c",
866    ],
867}
868
869cc_library_static {
870    name: "openthread-spinel-rcp",
871    vendor_available: true,
872
873    defaults: [
874        "ot_rcp_cflags_defaults",
875        "ot_simulation_cflags_defaults",
876    ],
877
878    export_include_dirs: [
879        "include",
880        "src",
881    ],
882
883    srcs: [
884        "src/lib/spinel/radio_spinel.cpp",
885        "src/lib/spinel/spinel.c",
886        "src/lib/spinel/spinel_buffer.cpp",
887        "src/lib/spinel/spinel_decoder.cpp",
888        "src/lib/spinel/spinel_driver.cpp",
889        "src/lib/spinel/spinel_encoder.cpp",
890        "src/lib/spinel/spinel_prop_codec.cpp",
891    ],
892}
893
894cc_library_static {
895    name: "openthread-rcp",
896    vendor_available: true,
897
898    defaults: [
899        "ot_rcp_cflags_defaults",
900        "ot_simulation_cflags_defaults",
901    ],
902
903    srcs: [
904        "src/ncp/changed_props_set.cpp",
905        "src/ncp/ncp_base.cpp",
906        "src/ncp/ncp_base_dispatcher.cpp",
907        "src/ncp/ncp_base_radio.cpp",
908        "src/ncp/ncp_spi.cpp",
909        "src/ncp/ncp_hdlc.cpp",
910    ],
911}
912
913cc_binary {
914    name: "ot-rcp",
915    vendor: true,
916    defaults: [
917        "ot_rcp_cflags_defaults",
918        "ot_simulation_cflags_defaults",
919    ],
920
921    srcs: [
922        "examples/apps/ncp/main.c",
923        "examples/apps/ncp/ncp.c",
924    ],
925
926    shared_libs: [
927        "liblog", // Required by src/android/logging.c
928    ],
929
930    static_libs: [
931        "libbase",
932        "libcutils",
933        "libutils",
934        "openthread-hdlc",
935        "openthread-radio",
936        "openthread-spinel-rcp",
937        "openthread-rcp",
938        "openthread-simulation",
939        "openthread-radio",
940    ],
941
942    stl: "c++_static",
943}
944
945cc_library_static {
946    name: "openthread-posix",
947    vendor_available: true,
948    local_include_dirs: [
949        "include",
950        "src",
951        "src/core",
952        "src/include",
953        "src/lib/platform",
954        "src/posix/platform",
955        "src/posix/platform/include",
956    ],
957    export_include_dirs: [
958        "include",
959        "src/core",
960        "src/posix/platform",
961        "src/posix/platform/include",
962    ],
963
964    cflags: [
965        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1",
966        "-DOPENTHREAD_OSIX_CONFIG_RCP_PTY_ENABLE=1",
967    ],
968
969    cppflags: [
970        "-Wno-non-virtual-dtor",
971    ],
972
973    srcs: [
974        "src/posix/platform/alarm.cpp",
975        "src/posix/platform/mainloop.cpp",
976        "src/posix/platform/hdlc_interface.cpp",
977        "src/posix/platform/radio_url.cpp",
978        "src/posix/platform/rcp_caps_diag.cpp",
979    ],
980}
981
982cc_library_static {
983    name: "openthread-common",
984    vendor_available: true,
985    local_include_dirs: [
986        "include",
987        "src",
988        "src/core",
989        "src/include",
990    ],
991
992    export_include_dirs: [
993        "include",
994        "src/core",
995    ],
996
997    srcs: [
998        "src/core/common/error.cpp",
999        "src/core/api/error_api.cpp",
1000    ],
1001}
1002
1003cc_binary {
1004    name: "ot-cli-ftd",
1005    defaults: [
1006        "ot_simulation_cflags_defaults",
1007    ],
1008
1009    cflags: [
1010        "-DOPENTHREAD_FTD=1",
1011        "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/vendor/threadnetwork/simulation\"",
1012    ],
1013
1014    srcs: [
1015        ":openthread_core_srcs",
1016        ":openthread_simulation_srcs",
1017        ":openthread_cli_srcs",
1018        ":openthread_mbedtls_srcs",
1019        "examples/apps/cli/cli_uart.cpp",
1020        "examples/apps/cli/main.c",
1021    ],
1022
1023    static_libs: [
1024        "openthread-platform",
1025    ],
1026
1027    shared_libs: [
1028        "libcutils", // Required by src/core/instance_api.cpp
1029        "liblog", // Required by src/android/logging.c
1030    ],
1031}
1032