// // Copyright (c) 2021, The OpenThread Authors. // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // 1. Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // 3. Neither the name of the copyright holder nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. // package { default_team: "trendy_team_fwk_thread_network", default_applicable_licenses: ["external_openthread_license"], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // // large-scale-change included anything that looked like it might be a license // text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. // // Please consider removing redundant or irrelevant files from 'license_text:'. // See: http://go/android-license-faq license { name: "external_openthread_license", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-BSD-3-Clause", "SPDX-license-identifier-GPL", "SPDX-license-identifier-GPL-2.0", "SPDX-license-identifier-LGPL", "SPDX-license-identifier-MIT", "legacy_unencumbered", ], license_text: [ "LICENSE", "NOTICE", ], } cc_defaults { name: "ot_posix_cflags_defaults", cflags: [ "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", "-DOPENTHREAD_CONFIG_FILE=\"src/android/openthread-android-config.h\"", "-DOPENTHREAD_PROJECT_LIB_CONFIG_FILE=\"src/android/openthread-android-spinel-config.h\"", "-DOPENTHREAD_FTD=1", "-DOPENTHREAD_POSIX=1", "-DOPENTHREAD_POSIX_CONFIG_DAEMON_ENABLE=1", "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"src/android/openthread-core-android-config.h\"", "-DOPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1", "-DOPENTHREAD_CONFIG_JOINER_ENABLE=1", "-DPACKAGE=\"openthread\"", "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"", "-DPACKAGE_NAME=\"OPENTHREAD\"", "-DPACKAGE_TARNAME=\"openthread\"", "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=0", "-DOPENTHREAD_POSIX_CONFIG_SPINEL_VENDOR_INTERFACE_ENABLE=1", ], } genrule { name: "ot_version_header", cmd: "$(location src/android/config-android-version-gen.sh) < $(in) > $(out)", srcs: ["src/android/openthread-config-android-version.h.in"], out: ["openthread-config-android-version.h"], tool_files: [ "src/android/config-android-version-gen.sh", ], } filegroup { name: "openthread_core_srcs", srcs: [ "src/core/api/backbone_router_api.cpp", "src/core/api/backbone_router_ftd_api.cpp", "src/core/api/border_agent_api.cpp", "src/core/api/border_router_api.cpp", "src/core/api/border_routing_api.cpp", "src/core/api/channel_manager_api.cpp", "src/core/api/channel_monitor_api.cpp", "src/core/api/child_supervision_api.cpp", "src/core/api/coap_api.cpp", "src/core/api/coap_secure_api.cpp", "src/core/api/commissioner_api.cpp", "src/core/api/crypto_api.cpp", "src/core/api/dataset_api.cpp", "src/core/api/dataset_ftd_api.cpp", "src/core/api/dataset_updater_api.cpp", "src/core/api/diags_api.cpp", "src/core/api/dns_api.cpp", "src/core/api/dns_server_api.cpp", "src/core/api/error_api.cpp", "src/core/api/heap_api.cpp", "src/core/api/history_tracker_api.cpp", "src/core/api/icmp6_api.cpp", "src/core/api/instance_api.cpp", "src/core/api/ip6_api.cpp", "src/core/api/jam_detection_api.cpp", "src/core/api/joiner_api.cpp", "src/core/api/link_api.cpp", "src/core/api/link_metrics_api.cpp", "src/core/api/link_raw_api.cpp", "src/core/api/logging_api.cpp", "src/core/api/mesh_diag_api.cpp", "src/core/api/message_api.cpp", "src/core/api/multi_radio_api.cpp", "src/core/api/nat64_api.cpp", "src/core/api/netdata_api.cpp", "src/core/api/netdata_publisher_api.cpp", "src/core/api/netdiag_api.cpp", "src/core/api/network_time_api.cpp", "src/core/api/ping_sender_api.cpp", "src/core/api/radio_stats_api.cpp", "src/core/api/random_crypto_api.cpp", "src/core/api/random_noncrypto_api.cpp", "src/core/api/server_api.cpp", "src/core/api/sntp_api.cpp", "src/core/api/srp_client_api.cpp", "src/core/api/srp_client_buffers_api.cpp", "src/core/api/srp_server_api.cpp", "src/core/api/tasklet_api.cpp", "src/core/api/tcp_api.cpp", "src/core/api/tcp_ext_api.cpp", "src/core/api/thread_api.cpp", "src/core/api/thread_ftd_api.cpp", "src/core/api/trel_api.cpp", "src/core/api/udp_api.cpp", "src/core/api/verhoeff_checksum_api.cpp", "src/core/backbone_router/backbone_tmf.cpp", "src/core/backbone_router/bbr_leader.cpp", "src/core/backbone_router/bbr_local.cpp", "src/core/backbone_router/bbr_manager.cpp", "src/core/backbone_router/multicast_listeners_table.cpp", "src/core/backbone_router/ndproxy_table.cpp", "src/core/border_router/infra_if.cpp", "src/core/border_router/routing_manager.cpp", "src/core/coap/coap.cpp", "src/core/coap/coap_message.cpp", "src/core/coap/coap_secure.cpp", "src/core/common/appender.cpp", "src/core/common/binary_search.cpp", "src/core/common/crc16.cpp", "src/core/common/data.cpp", "src/core/common/error.cpp", "src/core/common/frame_builder.cpp", "src/core/common/frame_data.cpp", "src/core/common/heap.cpp", "src/core/common/heap_data.cpp", "src/core/common/heap_string.cpp", "src/core/common/log.cpp", "src/core/common/message.cpp", "src/core/common/notifier.cpp", "src/core/common/offset_range.cpp", "src/core/common/preference.cpp", "src/core/common/random.cpp", "src/core/common/settings.cpp", "src/core/common/string.cpp", "src/core/common/tasklet.cpp", "src/core/common/time_ticker.cpp", "src/core/common/timer.cpp", "src/core/common/tlvs.cpp", "src/core/common/trickle_timer.cpp", "src/core/common/uptime.cpp", "src/core/crypto/aes_ccm.cpp", "src/core/crypto/aes_ecb.cpp", "src/core/crypto/crypto_platform.cpp", "src/core/crypto/hkdf_sha256.cpp", "src/core/crypto/hmac_sha256.cpp", "src/core/crypto/mbedtls.cpp", "src/core/crypto/sha256.cpp", "src/core/crypto/storage.cpp", "src/core/diags/factory_diags.cpp", "src/core/instance/instance.cpp", "src/core/mac/channel_mask.cpp", "src/core/mac/data_poll_handler.cpp", "src/core/mac/data_poll_sender.cpp", "src/core/mac/link_raw.cpp", "src/core/mac/mac.cpp", "src/core/mac/mac_filter.cpp", "src/core/mac/mac_frame.cpp", "src/core/mac/mac_links.cpp", "src/core/mac/mac_types.cpp", "src/core/mac/sub_mac.cpp", "src/core/mac/sub_mac_callbacks.cpp", "src/core/meshcop/announce_begin_client.cpp", "src/core/meshcop/border_agent.cpp", "src/core/meshcop/commissioner.cpp", "src/core/meshcop/dataset.cpp", "src/core/meshcop/dataset_manager.cpp", "src/core/meshcop/dataset_manager_ftd.cpp", "src/core/meshcop/dataset_updater.cpp", "src/core/meshcop/energy_scan_client.cpp", "src/core/meshcop/extended_panid.cpp", "src/core/meshcop/joiner.cpp", "src/core/meshcop/joiner_router.cpp", "src/core/meshcop/meshcop.cpp", "src/core/meshcop/meshcop_leader.cpp", "src/core/meshcop/meshcop_tlvs.cpp", "src/core/meshcop/network_name.cpp", "src/core/meshcop/panid_query_client.cpp", "src/core/meshcop/secure_transport.cpp", "src/core/meshcop/timestamp.cpp", "src/core/net/checksum.cpp", "src/core/net/dhcp6_client.cpp", "src/core/net/dhcp6_server.cpp", "src/core/net/dns_client.cpp", "src/core/net/dns_dso.cpp", "src/core/net/dns_platform.cpp", "src/core/net/dns_types.cpp", "src/core/net/dnssd_server.cpp", "src/core/net/icmp6.cpp", "src/core/net/ip4_types.cpp", "src/core/net/ip6.cpp", "src/core/net/ip6_address.cpp", "src/core/net/ip6_filter.cpp", "src/core/net/ip6_headers.cpp", "src/core/net/ip6_mpl.cpp", "src/core/net/nat64_translator.cpp", "src/core/net/nd6.cpp", "src/core/net/nd_agent.cpp", "src/core/net/netif.cpp", "src/core/net/sntp_client.cpp", "src/core/net/socket.cpp", "src/core/net/srp_client.cpp", "src/core/net/srp_server.cpp", "src/core/net/tcp6.cpp", "src/core/net/tcp6_ext.cpp", "src/core/net/udp6.cpp", "src/core/radio/radio.cpp", "src/core/radio/radio_callbacks.cpp", "src/core/radio/radio_platform.cpp", "src/core/radio/trel_interface.cpp", "src/core/radio/trel_link.cpp", "src/core/radio/trel_packet.cpp", "src/core/thread/address_resolver.cpp", "src/core/thread/announce_begin_server.cpp", "src/core/thread/announce_sender.cpp", "src/core/thread/anycast_locator.cpp", "src/core/thread/child.cpp", "src/core/thread/child_supervision.cpp", "src/core/thread/child_table.cpp", "src/core/thread/csl_tx_scheduler.cpp", "src/core/thread/discover_scanner.cpp", "src/core/thread/dua_manager.cpp", "src/core/thread/energy_scan_server.cpp", "src/core/thread/indirect_sender.cpp", "src/core/thread/key_manager.cpp", "src/core/thread/link_metrics.cpp", "src/core/thread/link_metrics_types.cpp", "src/core/thread/link_quality.cpp", "src/core/thread/lowpan.cpp", "src/core/thread/mesh_forwarder.cpp", "src/core/thread/mesh_forwarder_ftd.cpp", "src/core/thread/mesh_forwarder_mtd.cpp", "src/core/thread/mle.cpp", "src/core/thread/mle_router.cpp", "src/core/thread/mle_tlvs.cpp", "src/core/thread/mle_types.cpp", "src/core/thread/mlr_manager.cpp", "src/core/thread/neighbor.cpp", "src/core/thread/neighbor_table.cpp", "src/core/thread/network_data.cpp", "src/core/thread/network_data_leader.cpp", "src/core/thread/network_data_leader_ftd.cpp", "src/core/thread/network_data_local.cpp", "src/core/thread/network_data_notifier.cpp", "src/core/thread/network_data_publisher.cpp", "src/core/thread/network_data_service.cpp", "src/core/thread/network_data_tlvs.cpp", "src/core/thread/network_data_types.cpp", "src/core/thread/network_diagnostic.cpp", "src/core/thread/network_diagnostic_tlvs.cpp", "src/core/thread/panid_query_server.cpp", "src/core/thread/radio_selector.cpp", "src/core/thread/router.cpp", "src/core/thread/router_table.cpp", "src/core/thread/src_match_controller.cpp", "src/core/thread/thread_netif.cpp", "src/core/thread/time_sync_service.cpp", "src/core/thread/tmf.cpp", "src/core/thread/uri_paths.cpp", "src/core/utils/channel_manager.cpp", "src/core/utils/channel_monitor.cpp", "src/core/utils/flash.cpp", "src/core/utils/heap.cpp", "src/core/utils/history_tracker.cpp", "src/core/utils/jam_detector.cpp", "src/core/utils/mesh_diag.cpp", "src/core/utils/otns.cpp", "src/core/utils/parse_cmdline.cpp", "src/core/utils/ping_sender.cpp", "src/core/utils/power_calibration.cpp", "src/core/utils/slaac_address.cpp", "src/core/utils/srp_client_buffers.cpp", "src/core/utils/verhoeff_checksum.cpp", ], } filegroup { name: "openthread_cli_srcs", srcs: [ "src/cli/cli.cpp", "src/cli/cli_bbr.cpp", "src/cli/cli_br.cpp", "src/cli/cli_coap.cpp", "src/cli/cli_coap_secure.cpp", "src/cli/cli_commissioner.cpp", "src/cli/cli_dataset.cpp", "src/cli/cli_dns.cpp", "src/cli/cli_history.cpp", "src/cli/cli_joiner.cpp", "src/cli/cli_link_metrics.cpp", "src/cli/cli_mac_filter.cpp", "src/cli/cli_network_data.cpp", "src/cli/cli_ping.cpp", "src/cli/cli_srp_client.cpp", "src/cli/cli_srp_server.cpp", "src/cli/cli_tcp.cpp", "src/cli/cli_udp.cpp", "src/cli/cli_utils.cpp", ], } filegroup { name: "openthread_ncp_srcs", srcs: [ "src/ncp/changed_props_set.cpp", "src/ncp/ncp_base.cpp", "src/ncp/ncp_base_dispatcher.cpp", "src/ncp/ncp_base_radio.cpp", "src/ncp/ncp_spi.cpp", "src/ncp/ncp_hdlc.cpp", ], } filegroup { name: "openthread_simulation_srcs", srcs: [ "examples/platforms/simulation/alarm.c", "examples/platforms/simulation/crypto.c", "examples/platforms/simulation/diag.c", "examples/platforms/simulation/entropy.c", "examples/platforms/simulation/flash.c", "examples/platforms/simulation/infra_if.c", "examples/platforms/simulation/misc.c", "examples/platforms/simulation/radio.c", "examples/platforms/simulation/simul_utils.c", "examples/platforms/simulation/spi-stubs.c", "examples/platforms/simulation/system.c", "examples/platforms/simulation/trel.c", "examples/platforms/simulation/uart.c", "examples/platforms/utils/link_metrics.cpp", "examples/platforms/utils/mac_frame.cpp", "examples/platforms/utils/settings_ram.c", "examples/platforms/utils/soft_source_match_table.c", "src/android/logging.c", ], } filegroup { name: "openthread_mbedtls_srcs", srcs: [ "third_party/mbedtls/repo/library/aes.c", "third_party/mbedtls/repo/library/asn1parse.c", "third_party/mbedtls/repo/library/asn1write.c", "third_party/mbedtls/repo/library/base64.c", "third_party/mbedtls/repo/library/bignum_core.c", "third_party/mbedtls/repo/library/bignum.c", "third_party/mbedtls/repo/library/ccm.c", "third_party/mbedtls/repo/library/cipher.c", "third_party/mbedtls/repo/library/cipher_wrap.c", "third_party/mbedtls/repo/library/cmac.c", "third_party/mbedtls/repo/library/constant_time.c", "third_party/mbedtls/repo/library/ctr_drbg.c", "third_party/mbedtls/repo/library/debug.c", "third_party/mbedtls/repo/library/ecdh.c", "third_party/mbedtls/repo/library/ecdsa.c", "third_party/mbedtls/repo/library/ecjpake.c", "third_party/mbedtls/repo/library/ecp.c", "third_party/mbedtls/repo/library/ecp_curves.c", "third_party/mbedtls/repo/library/entropy.c", "third_party/mbedtls/repo/library/entropy_poll.c", "third_party/mbedtls/repo/library/hmac_drbg.c", "third_party/mbedtls/repo/library/md.c", "third_party/mbedtls/repo/library/memory_buffer_alloc.c", "third_party/mbedtls/repo/library/oid.c", "third_party/mbedtls/repo/library/pem.c", "third_party/mbedtls/repo/library/pk.c", "third_party/mbedtls/repo/library/pk_ecc.c", "third_party/mbedtls/repo/library/pk_wrap.c", "third_party/mbedtls/repo/library/pkparse.c", "third_party/mbedtls/repo/library/pkwrite.c", "third_party/mbedtls/repo/library/platform.c", "third_party/mbedtls/repo/library/platform_util.c", "third_party/mbedtls/repo/library/sha256.c", "third_party/mbedtls/repo/library/ssl_ciphersuites.c", "third_party/mbedtls/repo/library/ssl_client.c", "third_party/mbedtls/repo/library/ssl_cookie.c", "third_party/mbedtls/repo/library/ssl_msg.c", "third_party/mbedtls/repo/library/ssl_ticket.c", "third_party/mbedtls/repo/library/ssl_tls.c", "third_party/mbedtls/repo/library/ssl_tls12_client.c", "third_party/mbedtls/repo/library/ssl_tls12_server.c", "third_party/mbedtls/repo/library/ssl_tls13_client.c", "third_party/mbedtls/repo/library/threading.c", "third_party/mbedtls/repo/library/x509.c", "third_party/mbedtls/repo/library/x509_crt.c", ], } filegroup { name: "openthread_platform_posix_srcs", srcs: [ "src/android/logging.c", "src/posix/platform/alarm.cpp", "src/posix/platform/backtrace.cpp", "src/posix/platform/configuration.cpp", "src/posix/platform/config_file.cpp", "src/posix/platform/daemon.cpp", "src/posix/platform/entropy.cpp", "src/posix/platform/firewall.cpp", "src/posix/platform/hdlc_interface.cpp", "src/posix/platform/infra_if.cpp", "src/posix/platform/mainloop.cpp", "src/posix/platform/memory.cpp", "src/posix/platform/misc.cpp", "src/posix/platform/multicast_routing.cpp", "src/posix/platform/netif.cpp", "src/posix/platform/power.cpp", "src/posix/platform/radio.cpp", "src/posix/platform/radio_url.cpp", "src/posix/platform/rcp_caps_diag.cpp", "src/posix/platform/resolver.cpp", "src/posix/platform/settings.cpp", "src/posix/platform/spi_interface.cpp", "src/posix/platform/spinel_manager.cpp", "src/posix/platform/system.cpp", "src/posix/platform/trel.cpp", "src/posix/platform/udp.cpp", "src/posix/platform/utils.cpp", ], } cc_library_static { name: "ot-core", apex_available: ["com.android.tethering"], min_sdk_version: "30", defaults: [ "ot-daemon-debuggable-cc-defaults", "ot_posix_cflags_defaults", ], generated_headers: ["ot_version_header"], local_include_dirs: [ "include", "src", "src/android/thread_network_hal", "src/cli", "src/core", "src/ncp", "src/posix/platform", "src/posix/platform/include", "third_party", "third_party/mbedtls", "third_party/mbedtls/repo/include", ], export_include_dirs: [ "include", "src", ], cppflags: [ "-pedantic-errors", "-Wno-non-virtual-dtor", // Background: the HAL client implementation requires features which // are available on only 31+, but the Tethering module requires the // ot-daemon binary to support 30+. // It's safe to suppress this warning because ot-daemon will never // run below Android U (34). "-Wno-unguarded-availability", "-Wno-c99-extensions", ], vintf_fragments: ["src/android/thread_network_hal/device_manifest.xml"], shared_libs: [ "libbase", "libcutils", "libutils", "libbinder_ndk", "android.hardware.threadnetwork-V1-ndk", ], srcs: [ ":openthread_core_srcs", ":openthread_mbedtls_srcs", ":openthread_platform_posix_srcs", "src/android/thread_network_hal/hal_interface.cpp", "src/android/thread_network_hal/vendor_interface.cpp", "src/lib/hdlc/hdlc.cpp", "src/lib/platform/exit_code.c", "src/lib/spinel/logger.cpp", "src/lib/spinel/radio_spinel.cpp", "src/lib/spinel/spinel_buffer.cpp", "src/lib/spinel/spinel_decoder.cpp", "src/lib/spinel/spinel_driver.cpp", "src/lib/spinel/spinel_encoder.cpp", "src/lib/spinel/spinel_helper.cpp", "src/lib/spinel/spinel.c", "src/lib/url/url.cpp", ], } cc_library_static { name: "libopenthread-cli", apex_available: ["com.android.tethering"], min_sdk_version: "30", defaults: [ "ot-daemon-debuggable-cc-defaults", "ot_posix_cflags_defaults", ], generated_headers: ["ot_version_header"], local_include_dirs: [ "include", "src", "src/cli", "src/core", "src/posix/platform", "src/posix/platform/include", "third_party/mbedtls", "third_party/mbedtls/repo/include", ], cflags: [ "-DOPENTHREAD_CONFIG_CLI_UART_TX_BUFFER_SIZE=3500", "-DOPENTHREAD_CONFIG_CLI_UART_RX_BUFFER_SIZE=3500", "-DOPENTHREAD_CONFIG_UART_CLI_RAW=1", ], cppflags: [ "-std=c++11", "-pedantic-errors", "-Wno-c99-extensions", ], srcs: [ "src/cli/cli.cpp", "src/cli/cli_bbr.cpp", "src/cli/cli_br.cpp", "src/cli/cli_coap.cpp", "src/cli/cli_coap_secure.cpp", "src/cli/cli_commissioner.cpp", "src/cli/cli_dataset.cpp", "src/cli/cli_dns.cpp", "src/cli/cli_history.cpp", "src/cli/cli_joiner.cpp", "src/cli/cli_link_metrics.cpp", "src/cli/cli_mac_filter.cpp", "src/cli/cli_network_data.cpp", "src/cli/cli_ping.cpp", "src/cli/cli_srp_client.cpp", "src/cli/cli_srp_server.cpp", "src/cli/cli_tcp.cpp", "src/cli/cli_udp.cpp", "src/cli/cli_utils.cpp", ], } cc_binary { name: "ot-ctl", defaults: ["ot_posix_cflags_defaults"], generated_headers: ["ot_version_header"], cppflags: [ "-pedantic-errors", ], local_include_dirs: [ "include", "src/", "src/core", "src/posix/platform", "src/posix/platform/include", ], srcs: ["src/posix/client.cpp"], } cc_defaults { name: "ot_rcp_cflags_defaults", cflags: [ "-DOPENTHREAD_RADIO=1", ], } cc_defaults { name: "ot_simulation_cflags_defaults", local_include_dirs: [ "examples/platforms/simulation", "examples/platforms", "include", "src", "src/cli", "src/core", "src/ncp", "src/lib/hdlc", "third_party", "third_party/mbedtls", "third_party/mbedtls/repo/include", ], export_include_dirs: [ "include", "src", ], cflags: [ "-DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"", "-DOPENTHREAD_CONFIG_ANDROID_VERSION_HEADER_ENABLE=1", "-DOPENTHREAD_CONFIG_DIAG_ENABLE=1", "-DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1", "-DOPENTHREAD_CONFIG_ECDSA_ENABLE=1", "-DOPENTHREAD_CONFIG_FILE=\"openthread-config-android-version.h\"", "-DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1", "-DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1", "-DOPENTHREAD_CONFIG_MLR_ENABLE=1", "-DOPENTHREAD_CONFIG_NCP_HDLC_ENABLE=1", "-DOPENTHREAD_CONFIG_PING_SENDER_ENABLE=1", "-DOPENTHREAD_CONFIG_SRP_CLIENT_ENABLE=1", "-DOPENTHREAD_CONFIG_PLATFORM_FLASH_API_ENABLE=0", "-DOPENTHREAD_EXAMPLES_SIMULATION=1", "-DOPENTHREAD_CONFIG_TCP_ENABLE=0", "-DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"examples/platforms/simulation/openthread-core-simulation-config.h\"", "-DOPENTHREAD_SETTINGS_RAM=1", "-DOPENTHREAD_SIMULATION_MAX_NETWORK_SIZE=128", "-DPACKAGE=\"openthread\"", "-DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"", "-DPACKAGE_NAME=\"OPENTHREAD\"", "-DPACKAGE_TARNAME=\"openthread\"", "-DPACKAGE_URL=\"http://github.com/openthread/openthread\"", "-DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"", "-Wno-implicit-fallthrough", ], } cc_library_static { name: "openthread-simulation", vendor_available: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], static_libs: [ "libutils", ], srcs: [ ":openthread_simulation_srcs", "src/lib/platform/exit_code.c", "third_party/mbedtls/repo/library/aes.c", "third_party/mbedtls/repo/library/asn1parse.c", "third_party/mbedtls/repo/library/asn1write.c", "third_party/mbedtls/repo/library/base64.c", "third_party/mbedtls/repo/library/bignum_core.c", "third_party/mbedtls/repo/library/bignum.c", "third_party/mbedtls/repo/library/ccm.c", "third_party/mbedtls/repo/library/cipher.c", "third_party/mbedtls/repo/library/cipher_wrap.c", "third_party/mbedtls/repo/library/cmac.c", "third_party/mbedtls/repo/library/ctr_drbg.c", "third_party/mbedtls/repo/library/debug.c", "third_party/mbedtls/repo/library/entropy.c", "third_party/mbedtls/repo/library/entropy_poll.c", "third_party/mbedtls/repo/library/hmac_drbg.c", "third_party/mbedtls/repo/library/md.c", "third_party/mbedtls/repo/library/memory_buffer_alloc.c", "third_party/mbedtls/repo/library/oid.c", "third_party/mbedtls/repo/library/platform.c", "third_party/mbedtls/repo/library/platform_util.c", "third_party/mbedtls/repo/library/sha256.c", ], cflags: [ "-D_BSD_SOURCE=1", "-D_DEFAULT_SOURCE=1", ], } cc_library_static { name: "openthread-radio", vendor_available: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], generated_headers: ["ot_version_header"], shared_libs: [ "libcutils", ], srcs: [ "src/core/api/diags_api.cpp", "src/core/api/error_api.cpp", "src/core/api/instance_api.cpp", "src/core/api/link_raw_api.cpp", "src/core/api/logging_api.cpp", "src/core/api/random_noncrypto_api.cpp", "src/core/api/tasklet_api.cpp", "src/core/common/binary_search.cpp", "src/core/common/error.cpp", "src/core/common/frame_builder.cpp", "src/core/common/log.cpp", "src/core/common/random.cpp", "src/core/common/string.cpp", "src/core/common/tasklet.cpp", "src/core/common/timer.cpp", "src/core/common/uptime.cpp", "src/core/crypto/aes_ccm.cpp", "src/core/crypto/aes_ecb.cpp", "src/core/crypto/crypto_platform.cpp", "src/core/crypto/storage.cpp", "src/core/diags/factory_diags.cpp", "src/core/instance/instance.cpp", "src/core/mac/link_raw.cpp", "src/core/mac/mac_frame.cpp", "src/core/mac/mac_types.cpp", "src/core/mac/sub_mac.cpp", "src/core/mac/sub_mac_callbacks.cpp", "src/core/radio/radio.cpp", "src/core/radio/radio_callbacks.cpp", "src/core/radio/radio_platform.cpp", "src/core/thread/link_quality.cpp", "src/core/utils/parse_cmdline.cpp", "src/core/utils/power_calibration.cpp", ], } cc_library_static { name: "openthread-hdlc", vendor_available: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], export_include_dirs: [ "include", "src", ], srcs: [ "src/lib/hdlc/hdlc.cpp", ], } cc_library_static { name: "openthread-spi", vendor_available: true, local_include_dirs: [ "include", "src", "src/core", "src/lib/platform", "src/posix/platform", "src/posix/platform/include", ], export_include_dirs: [ "include", "src/core", "src/posix/platform", "src/posix/platform/include", ], cflags: [ "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", ], srcs: [ "src/posix/platform/spi_interface.cpp", ], } cc_library_static { name: "openthread-url", vendor_available: true, local_include_dirs: [ "include", "src", "src/core", "src/lib/url", ], export_include_dirs: [ "include", "src", ], srcs: [ "src/lib/url/url.cpp", ], } cc_library_static { name: "openthread-platform", vendor_available: true, local_include_dirs: [ "include", "src", "src/core", "src/lib/platform", ], export_include_dirs: [ "include", "src", ], srcs: [ "src/lib/platform/exit_code.c", ], } cc_library_static { name: "openthread-spinel-rcp", vendor_available: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], export_include_dirs: [ "include", "src", ], srcs: [ "src/lib/spinel/radio_spinel.cpp", "src/lib/spinel/spinel.c", "src/lib/spinel/spinel_buffer.cpp", "src/lib/spinel/spinel_decoder.cpp", "src/lib/spinel/spinel_driver.cpp", "src/lib/spinel/spinel_encoder.cpp", ], } cc_library_static { name: "openthread-rcp", vendor_available: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], srcs: [ "src/ncp/changed_props_set.cpp", "src/ncp/ncp_base.cpp", "src/ncp/ncp_base_dispatcher.cpp", "src/ncp/ncp_base_radio.cpp", "src/ncp/ncp_spi.cpp", "src/ncp/ncp_hdlc.cpp", ], } cc_binary { name: "ot-rcp", vendor: true, defaults: [ "ot_rcp_cflags_defaults", "ot_simulation_cflags_defaults", ], srcs: [ "examples/apps/ncp/main.c", "examples/apps/ncp/ncp.c", ], shared_libs: [ "liblog", // Required by src/android/logging.c ], static_libs: [ "libbase", "libcutils", "libutils", "openthread-hdlc", "openthread-radio", "openthread-spinel-rcp", "openthread-rcp", "openthread-simulation", "openthread-radio", ], stl: "c++_static", } cc_library_static { name: "openthread-posix", vendor_available: true, local_include_dirs: [ "include", "src", "src/core", "src/lib/platform", "src/posix/platform", "src/posix/platform/include", ], export_include_dirs: [ "include", "src/core", "src/posix/platform", "src/posix/platform/include", ], cflags: [ "-DOPENTHREAD_POSIX_CONFIG_SPINEL_SPI_INTERFACE_ENABLE=1", "-DOPENTHREAD_OSIX_CONFIG_RCP_PTY_ENABLE=1", ], cppflags: [ "-Wno-non-virtual-dtor", ], srcs: [ "src/posix/platform/alarm.cpp", "src/posix/platform/mainloop.cpp", "src/posix/platform/hdlc_interface.cpp", "src/posix/platform/radio_url.cpp", "src/posix/platform/rcp_caps_diag.cpp", ], } cc_library_static { name: "openthread-common", vendor_available: true, local_include_dirs: [ "include", "src", "src/core", ], export_include_dirs: [ "include", "src/core", ], srcs: [ "src/core/common/error.cpp", "src/core/api/error_api.cpp", ], } cc_binary { name: "ot-cli-ftd", defaults: [ "ot_simulation_cflags_defaults", ], cflags: [ "-DOPENTHREAD_FTD=1", "-DOPENTHREAD_CONFIG_POSIX_SETTINGS_PATH=\"/data/vendor/threadnetwork/simulation\"", ], srcs: [ ":openthread_core_srcs", ":openthread_simulation_srcs", ":openthread_cli_srcs", ":openthread_mbedtls_srcs", "examples/apps/cli/cli_uart.cpp", "examples/apps/cli/main.c", ], static_libs: [ "openthread-platform", ], shared_libs: [ "libcutils", // Required by src/core/instance_api.cpp "liblog", // Required by src/android/logging.c ], }