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_defaults { name: "gd_rust_defaults", target: { darwin: { enabled: false, }, }, host_supported: true, } cc_defaults { name: "gd_ffi_defaults", target: { darwin: { enabled: false, }, }, } rust_defaults { name: "libbt_shim_defaults", defaults: ["gd_rust_defaults"], crate_name: "bt_shim", srcs: ["src/lib.rs"], rustlibs: [ "libbluetooth_rs", "libbt_common", "libcxx", "libtokio", "libbt_packets", "libfutures", "libnum_traits", "libnix", "liblog_rust", "libbt_facade_helpers", ], proc_macros: [ "libpaste", ], static_libs: [ "libbt_callbacks_cxx", ], } rust_library_rlib { name: "libbt_shim", defaults: ["libbt_shim_defaults"], } rust_ffi_static { name: "libbt_shim_ffi", defaults: ["libbt_shim_defaults"], apex_available: [ "com.android.bluetooth", ], min_sdk_version: "30", } cc_library_static { name: "libbt_shim_bridge", defaults: [ "gd_ffi_defaults", "libchrome_support_defaults" ], generated_headers: [ "libbt_init_flags_bridge_header", "libbt_shim_bridge_header", "libbt_message_loop_thread_bridge_header", "cxx-bridge-header", ], generated_sources: [ "libbt_init_flags_bridge_code", "libbt_shim_bridge_code", "libbt_message_loop_thread_bridge_code", ], export_generated_headers: [ "libbt_init_flags_bridge_header", "libbt_shim_bridge_header", "libbt_message_loop_thread_bridge_header", "cxx-bridge-header", ], include_dirs: [ "packages/modules/Bluetooth/system/gd", ], header_libs: ["libbt_callbacks_cxx_headers"], export_header_lib_headers: ["libbt_callbacks_cxx_headers"], cflags: [ "-Wno-unused-const-variable", ], host_supported: true, apex_available: [ "com.android.bluetooth", ], min_sdk_version: "30", } cc_library_static { name: "libbluetooth_rust_interop", defaults: [ "gd_ffi_defaults", "libchrome_support_defaults" ], static_libs: [ "libbt_shim_bridge", "libbt_shim_ffi", ], host_supported: true, apex_available: [ "com.android.bluetooth", ], min_sdk_version: "30", } cc_library_static { name: "libbt_callbacks_cxx", defaults: [ "gd_ffi_defaults", "libchrome_support_defaults" ], header_libs: ["libbt_callbacks_cxx_headers"], srcs: ["callbacks/callbacks.cc"], generated_headers: ["libbt_shim_bridge_header", "cxx-bridge-header"], host_supported: true, apex_available: [ "com.android.bluetooth", ], min_sdk_version: "30", } cc_library_headers { name: "libbt_callbacks_cxx_headers", local_include_dirs: ["callbacks"], host_supported: true, apex_available: [ "com.android.bluetooth", ], min_sdk_version: "30", } genrule { name: "libbt_shim_bridge_header", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) --header > $(out)", srcs: ["src/bridge.rs"], out: ["src/bridge.rs.h"], } genrule { name: "libbt_shim_bridge_code", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) >> $(out)", srcs: ["src/bridge.rs"], out: ["bridge.cc"], } genrule { name: "libbt_init_flags_bridge_header", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) --header > $(out)", srcs: ["src/init_flags.rs"], out: ["src/init_flags.rs.h"], } genrule { name: "libbt_init_flags_bridge_code", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) >> $(out)", srcs: ["src/init_flags.rs"], out: ["init_flags.cc"], } genrule { name: "libbt_message_loop_thread_bridge_header", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) --header > $(out)", srcs: ["src/message_loop_thread.rs"], out: ["src/message_loop_thread.rs.h"], } genrule { name: "libbt_message_loop_thread_bridge_code", tools: ["cxxbridge"], cmd: "$(location cxxbridge) $(in) >> $(out)", srcs: ["src/message_loop_thread.rs"], out: ["message_loop_thread.cc"], }