• 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_FTD=1",
78        "-DOPENTHREAD_POSIX=1",
79        "-DOPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE=1",
80        "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"src/android/openthread-core-android-config.h\"",
81        "-DOPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1",
82        "-DOPENTHREAD_CONFIG_JOINER_ENABLE=1",
83        "-DPACKAGE=\"openthread\"",
84        "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"",
85        "-DPACKAGE_NAME=\"OPENTHREAD\"",
86        "-DPACKAGE_TARNAME=\"openthread\"",
87        "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"",
88        "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"",
89        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=0",
90        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE=1",
91    ],
92}
93
94genrule {
95    name: "ot_version_header",
96    cmd: "$(location src/android/config-android-version-gen.sh) < $(in) > $(out)",
97    srcs: ["src/android/openthread-config-android-version.h.in"],
98    out: ["openthread-config-android-version.h"],
99    tool_files: [
100        "src/android/config-android-version-gen.sh",
101    ],
102}
103
104filegroup {
105    name: "openthread_core_srcs",
106    srcs: [
107        "src/core/api/backbone_router_api.cpp",
108        "src/core/api/backbone_router_ftd_api.cpp",
109        "src/core/api/border_agent_api.cpp",
110        "src/core/api/border_router_api.cpp",
111        "src/core/api/border_routing_api.cpp",
112        "src/core/api/channel_manager_api.cpp",
113        "src/core/api/channel_monitor_api.cpp",
114        "src/core/api/child_supervision_api.cpp",
115        "src/core/api/coap_api.cpp",
116        "src/core/api/coap_secure_api.cpp",
117        "src/core/api/commissioner_api.cpp",
118        "src/core/api/crypto_api.cpp",
119        "src/core/api/dataset_api.cpp",
120        "src/core/api/dataset_ftd_api.cpp",
121        "src/core/api/dataset_updater_api.cpp",
122        "src/core/api/diags_api.cpp",
123        "src/core/api/dns_api.cpp",
124        "src/core/api/dns_server_api.cpp",
125        "src/core/api/error_api.cpp",
126        "src/core/api/heap_api.cpp",
127        "src/core/api/history_tracker_api.cpp",
128        "src/core/api/icmp6_api.cpp",
129        "src/core/api/instance_api.cpp",
130        "src/core/api/ip6_api.cpp",
131        "src/core/api/jam_detection_api.cpp",
132        "src/core/api/joiner_api.cpp",
133        "src/core/api/link_api.cpp",
134        "src/core/api/link_metrics_api.cpp",
135        "src/core/api/link_raw_api.cpp",
136        "src/core/api/logging_api.cpp",
137        "src/core/api/mesh_diag_api.cpp",
138        "src/core/api/message_api.cpp",
139        "src/core/api/multi_radio_api.cpp",
140        "src/core/api/nat64_api.cpp",
141        "src/core/api/netdata_api.cpp",
142        "src/core/api/netdata_publisher_api.cpp",
143        "src/core/api/netdiag_api.cpp",
144        "src/core/api/network_time_api.cpp",
145        "src/core/api/ping_sender_api.cpp",
146        "src/core/api/radio_stats_api.cpp",
147        "src/core/api/random_crypto_api.cpp",
148        "src/core/api/random_noncrypto_api.cpp",
149        "src/core/api/server_api.cpp",
150        "src/core/api/sntp_api.cpp",
151        "src/core/api/srp_client_api.cpp",
152        "src/core/api/srp_client_buffers_api.cpp",
153        "src/core/api/srp_server_api.cpp",
154        "src/core/api/tasklet_api.cpp",
155        "src/core/api/tcp_api.cpp",
156        "src/core/api/tcp_ext_api.cpp",
157        "src/core/api/thread_api.cpp",
158        "src/core/api/thread_ftd_api.cpp",
159        "src/core/api/trel_api.cpp",
160        "src/core/api/udp_api.cpp",
161        "src/core/backbone_router/backbone_tmf.cpp",
162        "src/core/backbone_router/bbr_leader.cpp",
163        "src/core/backbone_router/bbr_local.cpp",
164        "src/core/backbone_router/bbr_manager.cpp",
165        "src/core/backbone_router/multicast_listeners_table.cpp",
166        "src/core/backbone_router/ndproxy_table.cpp",
167        "src/core/border_router/infra_if.cpp",
168        "src/core/border_router/routing_manager.cpp",
169        "src/core/coap/coap.cpp",
170        "src/core/coap/coap_message.cpp",
171        "src/core/coap/coap_secure.cpp",
172        "src/core/common/appender.cpp",
173        "src/core/common/binary_search.cpp",
174        "src/core/common/crc16.cpp",
175        "src/core/common/data.cpp",
176        "src/core/common/error.cpp",
177        "src/core/common/frame_builder.cpp",
178        "src/core/common/frame_data.cpp",
179        "src/core/common/heap.cpp",
180        "src/core/common/heap_data.cpp",
181        "src/core/common/heap_string.cpp",
182        "src/core/common/log.cpp",
183        "src/core/common/message.cpp",
184        "src/core/common/notifier.cpp",
185        "src/core/common/preference.cpp",
186        "src/core/common/random.cpp",
187        "src/core/common/settings.cpp",
188        "src/core/common/string.cpp",
189        "src/core/common/tasklet.cpp",
190        "src/core/common/time_ticker.cpp",
191        "src/core/common/timer.cpp",
192        "src/core/common/tlvs.cpp",
193        "src/core/common/trickle_timer.cpp",
194        "src/core/common/uptime.cpp",
195        "src/core/crypto/aes_ccm.cpp",
196        "src/core/crypto/aes_ecb.cpp",
197        "src/core/crypto/crypto_platform.cpp",
198        "src/core/crypto/hkdf_sha256.cpp",
199        "src/core/crypto/hmac_sha256.cpp",
200        "src/core/crypto/mbedtls.cpp",
201        "src/core/crypto/sha256.cpp",
202        "src/core/crypto/storage.cpp",
203        "src/core/diags/factory_diags.cpp",
204        "src/core/instance/instance.cpp",
205        "src/core/mac/channel_mask.cpp",
206        "src/core/mac/data_poll_handler.cpp",
207        "src/core/mac/data_poll_sender.cpp",
208        "src/core/mac/link_raw.cpp",
209        "src/core/mac/mac.cpp",
210        "src/core/mac/mac_filter.cpp",
211        "src/core/mac/mac_frame.cpp",
212        "src/core/mac/mac_links.cpp",
213        "src/core/mac/mac_types.cpp",
214        "src/core/mac/sub_mac.cpp",
215        "src/core/mac/sub_mac_callbacks.cpp",
216        "src/core/meshcop/announce_begin_client.cpp",
217        "src/core/meshcop/border_agent.cpp",
218        "src/core/meshcop/commissioner.cpp",
219        "src/core/meshcop/dataset.cpp",
220        "src/core/meshcop/dataset_local.cpp",
221        "src/core/meshcop/dataset_manager.cpp",
222        "src/core/meshcop/dataset_manager_ftd.cpp",
223        "src/core/meshcop/dataset_updater.cpp",
224        "src/core/meshcop/energy_scan_client.cpp",
225        "src/core/meshcop/extended_panid.cpp",
226        "src/core/meshcop/joiner.cpp",
227        "src/core/meshcop/joiner_router.cpp",
228        "src/core/meshcop/meshcop.cpp",
229        "src/core/meshcop/meshcop_leader.cpp",
230        "src/core/meshcop/meshcop_tlvs.cpp",
231        "src/core/meshcop/network_name.cpp",
232        "src/core/meshcop/panid_query_client.cpp",
233        "src/core/meshcop/secure_transport.cpp",
234        "src/core/meshcop/timestamp.cpp",
235        "src/core/net/checksum.cpp",
236        "src/core/net/dhcp6_client.cpp",
237        "src/core/net/dhcp6_server.cpp",
238        "src/core/net/dns_client.cpp",
239        "src/core/net/dns_dso.cpp",
240        "src/core/net/dns_platform.cpp",
241        "src/core/net/dns_types.cpp",
242        "src/core/net/dnssd_server.cpp",
243        "src/core/net/icmp6.cpp",
244        "src/core/net/ip4_types.cpp",
245        "src/core/net/ip6.cpp",
246        "src/core/net/ip6_address.cpp",
247        "src/core/net/ip6_filter.cpp",
248        "src/core/net/ip6_headers.cpp",
249        "src/core/net/ip6_mpl.cpp",
250        "src/core/net/nat64_translator.cpp",
251        "src/core/net/nd6.cpp",
252        "src/core/net/nd_agent.cpp",
253        "src/core/net/netif.cpp",
254        "src/core/net/sntp_client.cpp",
255        "src/core/net/socket.cpp",
256        "src/core/net/srp_client.cpp",
257        "src/core/net/srp_server.cpp",
258        "src/core/net/tcp6.cpp",
259        "src/core/net/tcp6_ext.cpp",
260        "src/core/net/udp6.cpp",
261        "src/core/radio/radio.cpp",
262        "src/core/radio/radio_callbacks.cpp",
263        "src/core/radio/radio_platform.cpp",
264        "src/core/radio/trel_interface.cpp",
265        "src/core/radio/trel_link.cpp",
266        "src/core/radio/trel_packet.cpp",
267        "src/core/thread/address_resolver.cpp",
268        "src/core/thread/announce_begin_server.cpp",
269        "src/core/thread/announce_sender.cpp",
270        "src/core/thread/anycast_locator.cpp",
271        "src/core/thread/child.cpp",
272        "src/core/thread/child_supervision.cpp",
273        "src/core/thread/child_table.cpp",
274        "src/core/thread/csl_tx_scheduler.cpp",
275        "src/core/thread/discover_scanner.cpp",
276        "src/core/thread/dua_manager.cpp",
277        "src/core/thread/energy_scan_server.cpp",
278        "src/core/thread/indirect_sender.cpp",
279        "src/core/thread/key_manager.cpp",
280        "src/core/thread/link_metrics.cpp",
281        "src/core/thread/link_metrics_types.cpp",
282        "src/core/thread/link_quality.cpp",
283        "src/core/thread/lowpan.cpp",
284        "src/core/thread/mesh_forwarder.cpp",
285        "src/core/thread/mesh_forwarder_ftd.cpp",
286        "src/core/thread/mesh_forwarder_mtd.cpp",
287        "src/core/thread/mle.cpp",
288        "src/core/thread/mle_router.cpp",
289        "src/core/thread/mle_tlvs.cpp",
290        "src/core/thread/mle_types.cpp",
291        "src/core/thread/mlr_manager.cpp",
292        "src/core/thread/neighbor.cpp",
293        "src/core/thread/neighbor_table.cpp",
294        "src/core/thread/network_data.cpp",
295        "src/core/thread/network_data_leader.cpp",
296        "src/core/thread/network_data_leader_ftd.cpp",
297        "src/core/thread/network_data_local.cpp",
298        "src/core/thread/network_data_notifier.cpp",
299        "src/core/thread/network_data_publisher.cpp",
300        "src/core/thread/network_data_service.cpp",
301        "src/core/thread/network_data_tlvs.cpp",
302        "src/core/thread/network_data_types.cpp",
303        "src/core/thread/network_diagnostic.cpp",
304        "src/core/thread/network_diagnostic_tlvs.cpp",
305        "src/core/thread/panid_query_server.cpp",
306        "src/core/thread/radio_selector.cpp",
307        "src/core/thread/router.cpp",
308        "src/core/thread/router_table.cpp",
309        "src/core/thread/src_match_controller.cpp",
310        "src/core/thread/thread_netif.cpp",
311        "src/core/thread/time_sync_service.cpp",
312        "src/core/thread/tmf.cpp",
313        "src/core/thread/uri_paths.cpp",
314        "src/core/utils/channel_manager.cpp",
315        "src/core/utils/channel_monitor.cpp",
316        "src/core/utils/flash.cpp",
317        "src/core/utils/heap.cpp",
318        "src/core/utils/history_tracker.cpp",
319        "src/core/utils/jam_detector.cpp",
320        "src/core/utils/mesh_diag.cpp",
321        "src/core/utils/otns.cpp",
322        "src/core/utils/parse_cmdline.cpp",
323        "src/core/utils/ping_sender.cpp",
324        "src/core/utils/power_calibration.cpp",
325        "src/core/utils/slaac_address.cpp",
326        "src/core/utils/srp_client_buffers.cpp",
327    ],
328}
329
330filegroup {
331    name: "openthread_cli_srcs",
332    srcs: [
333        "src/cli/cli.cpp",
334        "src/cli/cli_bbr.cpp",
335        "src/cli/cli_br.cpp",
336        "src/cli/cli_coap.cpp",
337        "src/cli/cli_coap_secure.cpp",
338        "src/cli/cli_commissioner.cpp",
339        "src/cli/cli_dataset.cpp",
340        "src/cli/cli_dns.cpp",
341        "src/cli/cli_history.cpp",
342        "src/cli/cli_joiner.cpp",
343        "src/cli/cli_link_metrics.cpp",
344        "src/cli/cli_mac_filter.cpp",
345        "src/cli/cli_network_data.cpp",
346        "src/cli/cli_ping.cpp",
347        "src/cli/cli_srp_client.cpp",
348        "src/cli/cli_srp_server.cpp",
349        "src/cli/cli_tcp.cpp",
350        "src/cli/cli_udp.cpp",
351        "src/cli/cli_utils.cpp",
352    ],
353}
354
355filegroup {
356    name: "openthread_ncp_srcs",
357    srcs: [
358        "src/ncp/changed_props_set.cpp",
359        "src/ncp/ncp_base.cpp",
360        "src/ncp/ncp_base_dispatcher.cpp",
361        "src/ncp/ncp_base_radio.cpp",
362        "src/ncp/ncp_spi.cpp",
363        "src/ncp/ncp_hdlc.cpp",
364    ],
365}
366
367filegroup {
368    name: "openthread_simulation_srcs",
369    srcs: [
370        "examples/platforms/simulation/alarm.c",
371        "examples/platforms/simulation/crypto.c",
372        "examples/platforms/simulation/diag.c",
373        "examples/platforms/simulation/entropy.c",
374        "examples/platforms/simulation/flash.c",
375        "examples/platforms/simulation/infra_if.c",
376        "examples/platforms/simulation/logging.c",
377        "examples/platforms/simulation/misc.c",
378        "examples/platforms/simulation/radio.c",
379        "examples/platforms/simulation/simul_utils.c",
380        "examples/platforms/simulation/spi-stubs.c",
381        "examples/platforms/simulation/system.c",
382        "examples/platforms/simulation/trel.c",
383        "examples/platforms/simulation/uart.c",
384        "examples/platforms/utils/link_metrics.cpp",
385        "examples/platforms/utils/mac_frame.cpp",
386        "examples/platforms/utils/settings_ram.c",
387        "examples/platforms/utils/soft_source_match_table.c",
388    ],
389}
390
391filegroup {
392    name: "openthread_mbedtls_srcs",
393    srcs: [
394        "third_party/mbedtls/repo/library/aes.c",
395        "third_party/mbedtls/repo/library/asn1parse.c",
396        "third_party/mbedtls/repo/library/asn1write.c",
397        "third_party/mbedtls/repo/library/base64.c",
398        "third_party/mbedtls/repo/library/bignum.c",
399        "third_party/mbedtls/repo/library/ccm.c",
400        "third_party/mbedtls/repo/library/cipher.c",
401        "third_party/mbedtls/repo/library/cipher_wrap.c",
402        "third_party/mbedtls/repo/library/cmac.c",
403        "third_party/mbedtls/repo/library/constant_time.c",
404        "third_party/mbedtls/repo/library/ctr_drbg.c",
405        "third_party/mbedtls/repo/library/debug.c",
406        "third_party/mbedtls/repo/library/ecdh.c",
407        "third_party/mbedtls/repo/library/ecdsa.c",
408        "third_party/mbedtls/repo/library/ecjpake.c",
409        "third_party/mbedtls/repo/library/ecp.c",
410        "third_party/mbedtls/repo/library/ecp_curves.c",
411        "third_party/mbedtls/repo/library/entropy.c",
412        "third_party/mbedtls/repo/library/entropy_poll.c",
413        "third_party/mbedtls/repo/library/hmac_drbg.c",
414        "third_party/mbedtls/repo/library/md.c",
415        "third_party/mbedtls/repo/library/memory_buffer_alloc.c",
416        "third_party/mbedtls/repo/library/oid.c",
417        "third_party/mbedtls/repo/library/pem.c",
418        "third_party/mbedtls/repo/library/pk.c",
419        "third_party/mbedtls/repo/library/pk_wrap.c",
420        "third_party/mbedtls/repo/library/pkparse.c",
421        "third_party/mbedtls/repo/library/pkwrite.c",
422        "third_party/mbedtls/repo/library/platform.c",
423        "third_party/mbedtls/repo/library/platform_util.c",
424        "third_party/mbedtls/repo/library/sha256.c",
425        "third_party/mbedtls/repo/library/ssl_ciphersuites.c",
426        "third_party/mbedtls/repo/library/ssl_cli.c",
427        "third_party/mbedtls/repo/library/ssl_cookie.c",
428        "third_party/mbedtls/repo/library/ssl_msg.c",
429        "third_party/mbedtls/repo/library/ssl_srv.c",
430        "third_party/mbedtls/repo/library/ssl_ticket.c",
431        "third_party/mbedtls/repo/library/ssl_tls.c",
432        "third_party/mbedtls/repo/library/threading.c",
433        "third_party/mbedtls/repo/library/x509.c",
434        "third_party/mbedtls/repo/library/x509_crt.c",
435    ],
436}
437
438filegroup {
439    name: "openthread_platform_posix_srcs",
440    srcs: [
441        "src/posix/platform/alarm.cpp",
442        "src/posix/platform/backtrace.cpp",
443        "src/posix/platform/configuration.cpp",
444        "src/posix/platform/config_file.cpp",
445        "src/posix/platform/daemon.cpp",
446        "src/posix/platform/entropy.cpp",
447        "src/posix/platform/firewall.cpp",
448        "src/posix/platform/hdlc_interface.cpp",
449        "src/posix/platform/infra_if.cpp",
450        "src/posix/platform/logging.cpp",
451        "src/posix/platform/mainloop.cpp",
452        "src/posix/platform/memory.cpp",
453        "src/posix/platform/misc.cpp",
454        "src/posix/platform/multicast_routing.cpp",
455        "src/posix/platform/netif.cpp",
456        "src/posix/platform/power.cpp",
457        "src/posix/platform/radio.cpp",
458        "src/posix/platform/radio_url.cpp",
459        "src/posix/platform/resolver.cpp",
460        "src/posix/platform/settings.cpp",
461        "src/posix/platform/spi_interface.cpp",
462        "src/posix/platform/system.cpp",
463        "src/posix/platform/trel.cpp",
464        "src/posix/platform/udp.cpp",
465        "src/posix/platform/utils.cpp",
466    ],
467}
468
469cc_library_static {
470    name: "ot-core",
471    apex_available: ["com.android.tethering"],
472    min_sdk_version: "30",
473    defaults: [
474        "ot-daemon-debuggable-cc-defaults",
475        "ot_posix_cflags_defaults",
476    ],
477    generated_headers: ["ot_version_header"],
478
479    local_include_dirs: [
480        "include",
481        "src",
482        "src/android/thread_network_hal",
483        "src/cli",
484        "src/core",
485        "src/ncp",
486        "src/posix/platform",
487        "src/posix/platform/include",
488        "third_party",
489        "third_party/mbedtls",
490        "third_party/mbedtls/repo/include",
491    ],
492
493    export_include_dirs: [
494        "include",
495        "src",
496    ],
497
498    cppflags: [
499        "-pedantic-errors",
500        "-Wno-non-virtual-dtor",
501        // Background: the HAL client implementation requires features which
502        // are available on only 31+, but the Tethering module requires the
503        // ot-daemon binary to support 30+.
504        // It's safe to suppress this warning because ot-daemon will never
505        // run below Android U (34).
506        "-Wno-unguarded-availability",
507    ],
508
509    vintf_fragments: ["src/android/thread_network_hal/device_manifest.xml"],
510    shared_libs: [
511        "libbase",
512        "libcutils",
513        "libutils",
514        "libbinder_ndk",
515        "android.hardware.threadnetwork-V1-ndk",
516    ],
517
518    srcs: [
519        ":openthread_core_srcs",
520        ":openthread_mbedtls_srcs",
521        ":openthread_platform_posix_srcs",
522        "src/android/thread_network_hal/hal_interface.cpp",
523        "src/android/thread_network_hal/vendor_interface.cpp",
524        "src/lib/hdlc/hdlc.cpp",
525        "src/lib/platform/exit_code.c",
526        "src/lib/spinel/logger.cpp",
527        "src/lib/spinel/radio_spinel.cpp",
528        "src/lib/spinel/spinel.c",
529        "src/lib/spinel/spinel_buffer.cpp",
530        "src/lib/spinel/spinel_decoder.cpp",
531        "src/lib/spinel/spinel_encoder.cpp",
532        "src/lib/url/url.cpp",
533    ],
534}
535
536cc_library_static {
537    name: "libopenthread-cli",
538    apex_available: ["com.android.tethering"],
539    min_sdk_version: "30",
540    defaults: [
541        "ot-daemon-debuggable-cc-defaults",
542        "ot_posix_cflags_defaults",
543    ],
544    generated_headers: ["ot_version_header"],
545
546    local_include_dirs: [
547        "include",
548        "src",
549        "src/cli",
550        "src/core",
551        "src/posix/platform",
552        "src/posix/platform/include",
553        "third_party/mbedtls",
554        "third_party/mbedtls/repo/include",
555    ],
556
557    cflags: [
558        "-DOPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE=3500",
559        "-DOPENTHREAD_CONFIG_CLI_UART_RX_BUFFER_SIZE=3500",
560        "-DOPENTHREAD_CONFIG_UART_CLI_RAW=1",
561    ],
562
563    cppflags: [
564        "-std=c++11",
565        "-pedantic-errors",
566    ],
567
568    srcs: [
569        "src/cli/cli.cpp",
570        "src/cli/cli_bbr.cpp",
571        "src/cli/cli_br.cpp",
572        "src/cli/cli_coap.cpp",
573        "src/cli/cli_coap_secure.cpp",
574        "src/cli/cli_commissioner.cpp",
575        "src/cli/cli_dataset.cpp",
576        "src/cli/cli_dns.cpp",
577        "src/cli/cli_history.cpp",
578        "src/cli/cli_joiner.cpp",
579        "src/cli/cli_link_metrics.cpp",
580        "src/cli/cli_mac_filter.cpp",
581        "src/cli/cli_network_data.cpp",
582        "src/cli/cli_ping.cpp",
583        "src/cli/cli_srp_client.cpp",
584        "src/cli/cli_srp_server.cpp",
585        "src/cli/cli_tcp.cpp",
586        "src/cli/cli_udp.cpp",
587        "src/cli/cli_utils.cpp",
588    ],
589}
590
591cc_binary {
592    name: "ot-ctl",
593    defaults: ["ot_posix_cflags_defaults"],
594    generated_headers: ["ot_version_header"],
595
596    cppflags: [
597        "-pedantic-errors",
598    ],
599
600    local_include_dirs: [
601        "include",
602        "src/",
603        "src/core",
604        "src/posix/platform",
605        "src/posix/platform/include",
606    ],
607
608    srcs: ["src/posix/client.cpp"],
609}
610
611cc_defaults {
612    name: "ot_rcp_cflags_defaults",
613    cflags: [
614        "-DOPENTHREAD_RADIO=1",
615    ],
616}
617
618cc_defaults {
619    name: "ot_simulation_cflags_defaults",
620
621    local_include_dirs: [
622        "examples/platforms/simulation",
623        "examples/platforms",
624        "include",
625        "src",
626        "src/cli",
627        "src/core",
628        "src/ncp",
629        "src/lib/hdlc",
630        "third_party",
631        "third_party/mbedtls",
632        "third_party/mbedtls/repo/include",
633    ],
634
635    export_include_dirs: [
636        "include",
637        "src",
638    ],
639
640    cflags: [
641        "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"",
642        "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1",
643        "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1",
644        "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1",
645        "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1",
646        "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"",
647        "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1",
648        "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1",
649        "-DOPENTHREAD_CONFIG_MLR_ENABLE=1",
650        "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1",
651        "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1",
652        "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1",
653        "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0",
654        "-DOPENTHREAD_EXAMPLES_SIMULATION=1",
655        "-DOPENTHREAD_CONFIG_TCP_ENABLE=0",
656        "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"examples/platforms/simulation/openthread-core-simulation-config.h\"",
657        "-DOPENTHREAD_SETTINGS_RAM=1",
658        "-DOPENTHREAD_SIMULATION_MAX_NETWORK_SIZE=128",
659        "-DPACKAGE=\"openthread\"",
660        "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"",
661        "-DPACKAGE_NAME=\"OPENTHREAD\"",
662        "-DPACKAGE_TARNAME=\"openthread\"",
663        "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"",
664        "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"",
665        "-Wno-implicit-fallthrough",
666    ],
667}
668
669cc_library_static {
670    name: "openthread-simulation",
671    vendor_available: true,
672
673    defaults: [
674        "ot_rcp_cflags_defaults",
675        "ot_simulation_cflags_defaults",
676    ],
677
678    srcs: [
679        ":openthread_simulation_srcs",
680        "src/lib/platform/exit_code.c",
681        "third_party/mbedtls/repo/library/aes.c",
682        "third_party/mbedtls/repo/library/asn1parse.c",
683        "third_party/mbedtls/repo/library/asn1write.c",
684        "third_party/mbedtls/repo/library/base64.c",
685        "third_party/mbedtls/repo/library/bignum.c",
686        "third_party/mbedtls/repo/library/ccm.c",
687        "third_party/mbedtls/repo/library/cipher.c",
688        "third_party/mbedtls/repo/library/cipher_wrap.c",
689        "third_party/mbedtls/repo/library/cmac.c",
690        "third_party/mbedtls/repo/library/ctr_drbg.c",
691        "third_party/mbedtls/repo/library/debug.c",
692        "third_party/mbedtls/repo/library/entropy.c",
693        "third_party/mbedtls/repo/library/entropy_poll.c",
694        "third_party/mbedtls/repo/library/hmac_drbg.c",
695        "third_party/mbedtls/repo/library/md.c",
696        "third_party/mbedtls/repo/library/memory_buffer_alloc.c",
697        "third_party/mbedtls/repo/library/oid.c",
698        "third_party/mbedtls/repo/library/platform.c",
699        "third_party/mbedtls/repo/library/platform_util.c",
700        "third_party/mbedtls/repo/library/sha256.c",
701    ],
702
703    cflags: [
704        "-D_BSD_SOURCE=1",
705        "-D_DEFAULT_SOURCE=1",
706    ],
707}
708
709cc_library_static {
710    name: "openthread-radio",
711    vendor_available: true,
712
713    defaults: [
714        "ot_rcp_cflags_defaults",
715        "ot_simulation_cflags_defaults",
716    ],
717
718    generated_headers: ["ot_version_header"],
719    shared_libs: [
720        "libcutils",
721    ],
722
723    srcs: [
724        "src/core/api/diags_api.cpp",
725        "src/core/api/error_api.cpp",
726        "src/core/api/instance_api.cpp",
727        "src/core/api/link_raw_api.cpp",
728        "src/core/api/logging_api.cpp",
729        "src/core/api/random_noncrypto_api.cpp",
730        "src/core/api/tasklet_api.cpp",
731        "src/core/common/binary_search.cpp",
732        "src/core/common/error.cpp",
733        "src/core/common/frame_builder.cpp",
734        "src/core/common/log.cpp",
735        "src/core/common/random.cpp",
736        "src/core/common/string.cpp",
737        "src/core/common/tasklet.cpp",
738        "src/core/common/timer.cpp",
739        "src/core/common/uptime.cpp",
740        "src/core/crypto/aes_ccm.cpp",
741        "src/core/crypto/aes_ecb.cpp",
742        "src/core/crypto/crypto_platform.cpp",
743        "src/core/crypto/storage.cpp",
744        "src/core/diags/factory_diags.cpp",
745        "src/core/instance/instance.cpp",
746        "src/core/mac/link_raw.cpp",
747        "src/core/mac/mac_frame.cpp",
748        "src/core/mac/mac_types.cpp",
749        "src/core/mac/sub_mac.cpp",
750        "src/core/mac/sub_mac_callbacks.cpp",
751        "src/core/radio/radio.cpp",
752        "src/core/radio/radio_callbacks.cpp",
753        "src/core/radio/radio_platform.cpp",
754        "src/core/thread/link_quality.cpp",
755        "src/core/utils/parse_cmdline.cpp",
756        "src/core/utils/power_calibration.cpp",
757    ],
758}
759
760cc_library_static {
761    name: "openthread-hdlc",
762    vendor_available: true,
763    defaults: [
764        "ot_rcp_cflags_defaults",
765        "ot_simulation_cflags_defaults",
766    ],
767    export_include_dirs: [
768        "include",
769        "src",
770    ],
771    srcs: [
772        "src/lib/hdlc/hdlc.cpp",
773    ],
774}
775
776cc_library_static {
777    name: "openthread-spi",
778    vendor_available: true,
779    local_include_dirs: [
780        "include",
781        "src",
782        "src/core",
783        "src/lib/platform",
784        "src/posix/platform",
785        "src/posix/platform/include",
786    ],
787    export_include_dirs: [
788        "include",
789        "src/core",
790        "src/posix/platform",
791        "src/posix/platform/include",
792    ],
793
794    cflags: [
795        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1",
796    ],
797
798    srcs: [
799        "src/posix/platform/spi_interface.cpp",
800    ],
801}
802
803cc_library_static {
804    name: "openthread-url",
805    vendor_available: true,
806    local_include_dirs: [
807        "include",
808        "src",
809        "src/core",
810        "src/lib/url",
811    ],
812    export_include_dirs: [
813        "include",
814        "src",
815    ],
816    srcs: [
817        "src/lib/url/url.cpp",
818    ],
819}
820
821cc_library_static {
822    name: "openthread-platform",
823    vendor_available: true,
824    local_include_dirs: [
825        "include",
826        "src",
827        "src/core",
828        "src/lib/platform",
829    ],
830    export_include_dirs: [
831        "include",
832        "src",
833    ],
834    srcs: [
835        "src/lib/platform/exit_code.c",
836    ],
837}
838
839cc_library_static {
840    name: "openthread-spinel-rcp",
841    vendor_available: true,
842
843    defaults: [
844        "ot_rcp_cflags_defaults",
845        "ot_simulation_cflags_defaults",
846    ],
847
848    export_include_dirs: [
849        "include",
850        "src",
851    ],
852
853    srcs: [
854        "src/lib/spinel/radio_spinel.cpp",
855        "src/lib/spinel/spinel.c",
856        "src/lib/spinel/spinel_buffer.cpp",
857        "src/lib/spinel/spinel_decoder.cpp",
858        "src/lib/spinel/spinel_encoder.cpp",
859    ],
860}
861
862cc_library_static {
863    name: "openthread-rcp",
864    vendor_available: true,
865
866    defaults: [
867        "ot_rcp_cflags_defaults",
868        "ot_simulation_cflags_defaults",
869    ],
870
871    srcs: [
872        "src/ncp/changed_props_set.cpp",
873        "src/ncp/ncp_base.cpp",
874        "src/ncp/ncp_base_dispatcher.cpp",
875        "src/ncp/ncp_base_radio.cpp",
876        "src/ncp/ncp_spi.cpp",
877        "src/ncp/ncp_hdlc.cpp",
878    ],
879}
880
881cc_binary {
882    name: "ot-rcp",
883    vendor: true,
884    defaults: [
885        "ot_rcp_cflags_defaults",
886        "ot_simulation_cflags_defaults",
887    ],
888
889    srcs: [
890        "examples/apps/ncp/main.c",
891        "examples/apps/ncp/ncp.c",
892    ],
893
894    static_libs: [
895        "libbase",
896        "libcutils",
897        "libutils",
898        "openthread-hdlc",
899        "openthread-radio",
900        "openthread-spinel-rcp",
901        "openthread-rcp",
902        "openthread-simulation",
903        "openthread-radio",
904    ],
905
906    stl: "c++_static",
907}
908
909cc_library_static {
910    name: "openthread-posix",
911    vendor_available: true,
912    local_include_dirs: [
913        "include",
914        "src",
915        "src/core",
916        "src/lib/platform",
917        "src/posix/platform",
918        "src/posix/platform/include",
919    ],
920    export_include_dirs: [
921        "include",
922        "src/core",
923        "src/posix/platform",
924        "src/posix/platform/include",
925    ],
926
927    cflags: [
928        "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1",
929        "-DOPENTHREAD_OSIX_CONFIG_RCP_PTY_ENABLE=1",
930    ],
931
932    cppflags: [
933        "-Wno-non-virtual-dtor",
934    ],
935
936    srcs: [
937        "src/posix/platform/alarm.cpp",
938        "src/posix/platform/mainloop.cpp",
939        "src/posix/platform/hdlc_interface.cpp",
940        "src/posix/platform/radio_url.cpp",
941    ],
942}
943
944cc_library_static {
945    name: "openthread-common",
946    vendor_available: true,
947    local_include_dirs: [
948        "include",
949        "src",
950        "src/core",
951    ],
952
953    export_include_dirs: [
954        "include",
955        "src/core",
956    ],
957
958    srcs: [
959        "src/core/common/error.cpp",
960        "src/core/api/error_api.cpp",
961    ],
962}
963
964cc_binary {
965    name: "ot-cli-ftd",
966    defaults: [
967        "ot_simulation_cflags_defaults",
968    ],
969
970    cflags: [
971        "-DOPENTHREAD_FTD=1",
972        "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/vendor/threadnetwork/simulation\"",
973    ],
974
975    srcs: [
976        ":openthread_core_srcs",
977        ":openthread_simulation_srcs",
978        ":openthread_cli_srcs",
979        ":openthread_mbedtls_srcs",
980        "examples/apps/cli/cli_uart.cpp",
981        "examples/apps/cli/main.c",
982    ],
983
984    static_libs: [
985        "openthread-platform",
986    ],
987
988    shared_libs: [
989        "libcutils", // Required by src/core/instance_api.cpp
990    ],
991}
992