package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "system_bt_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["system_bt_license"], } rust_library_host_rlib { name: "libbt_topshim", defaults: ["gd_rust_defaults"], crate_name: "bt_topshim", srcs: [ "src/lib.rs", ":libbt_topshim_wrapper_bindgen", ], rustlibs: [ "libbitflags", "libbluetooth_rs", "libbt_common", "libbt_facade_helpers", "libclap", "libcxx", "libgrpcio", "libtokio", "libtokio_stream", "libbt_packets", "libfutures", "libnum_traits", "libnix", "liblog_rust", ], proc_macros: [ "libnum_derive", "libpaste", "libtopshim_macros", ], lints: "none", clippy_lints: "none", } cc_library_static { name: "libbt_topshim_cxx", defaults: ["gd_ffi_defaults"], header_libs: ["libbt_callbacks_cxx_headers"], srcs: [ "btav/btav_shim.cc", "btav_sink/btav_sink_shim.cc", "btif/btif_shim.cc", "gatt/gatt_shim.cc", "hfp/hfp_shim.cc", "controller/controller_shim.cc", ], generated_headers: ["libbt_topshim_bridge_header", "cxx-bridge-header"], generated_sources: ["libbt_topshim_bridge_code"], shared_libs: [ "libchrome", ], include_dirs: [ "system/bt", "system/bt/gd/rust/topshim", "system/bt/include", "system/bt/types", ], host_supported: true, } gensrcs { name: "libbt_topshim_bridge_header", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) --header > $(out)", srcs: [ "src/btif.rs", "src/profiles/a2dp.rs", "src/profiles/avrcp.rs", "src/profiles/gatt.rs", "src/controller.rs", ], output_extension: "rs.h", export_include_dirs: ["."], } gensrcs { name: "libbt_topshim_bridge_code", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) > $(out)", srcs: [ "src/btif.rs", "src/profiles/a2dp.rs", "src/profiles/avrcp.rs", "src/profiles/gatt.rs", "src/controller.rs", ], output_extension: "cc", export_include_dirs: ["."], } rust_bindgen { name: "libbt_topshim_wrapper_bindgen", wrapper_src: "bindings/wrapper.hpp", crate_name: "bt_topshim_wrapper_bindgen", source_stem: "bindings", cpp_std: "c++17", host_supported: true, bindgen_flags: [ "--size_t-is-usize", "--allowlist-function=bt_.*", "--allowlist-function=bthh_.*", "--allowlist-function=btgatt_.*", "--allowlist-function=btsdp.*", "--allowlist-function=hal_util_.*", "--allowlist-type=bt_.*", "--allowlist-type=bthh_.*", "--allowlist-type=btgatt_.*", "--allowlist-type=bluetooth_sdp.*", "--allowlist-type=btsdp.*", "--enable-cxx-namespaces", "--opaque-type=std::.*", "--with-derive-default", "--with-derive-partialeq", "--with-derive-eq", ], shared_libs: [ "libc++", ], header_libs: [ "libbluetooth_headers", ], include_dirs: ["system/bt"], }