blob: cb41ffc9bdbe78bb8e3ec216b726d96d67e9c39b [file] [log] [blame]
package {
default_applicable_licenses: ["external_uwb_license"],
}
rust_defaults {
name: "libuwb_uci_defaults",
srcs: [
"rust/lib.rs",
],
crate_name: "uwb_uci_rust",
lints: "android",
clippy_lints: "android",
rustlibs: [
"android.hardware.uwb-V1-rust",
"libanyhow",
"libbinder_ndk_sys",
"libbinder_rs",
"libbytes",
"libjni",
"liblazy_static",
"liblog_rust",
"liblogger",
"libnum_traits",
"libthiserror",
"libtokio",
"libuwb_uci_packets",
"libbinder_tokio_rs",
],
target: {
android: {
rustlibs: [
"librustutils",
],
},
},
rlibs: [
"libarbitrary",
],
proc_macros: [
"libasync_trait",
],
apex_available: [
"com.android.uwb",
],
min_sdk_version: "Tiramisu",
host_supported: true,
}
rust_library {
name: "libuwb_uci_rust",
defaults: ["libuwb_uci_defaults"],
}
rust_test {
name: "libuwb_uci_rust_tests",
defaults: ["libuwb_uci_defaults"],
target: {
android: {
test_suites: [
"general-tests",
"mts-uwb"
],
test_config_template: "uwb_rust_test_config_template.xml",
},
host: {
test_suites: [
"general-tests",
],
data_libs: [
"libandroid_runtime_lazy",
"libbase",
"libbinder",
"libbinder_ndk",
"libcutils",
"liblog",
"libutils",
],
},
},
// Support multilib variants (using different suffix per sub-architecture), which is needed on
// build targets with secondary architectures, as the MTS test suite packaging logic flattens
// all test artifacts into a single `testcases` directory.
compile_multilib: "both",
multilib: {
lib32: {
suffix: "32",
},
lib64: {
suffix: "",
},
},
auto_gen_config: true,
}
rust_defaults {
name: "libuwb_uci_packet_defaults",
srcs: [
"rust/uwb_uci_packets/src/lib.rs",
":UwbGeneratedPackets_rust",
],
proc_macros: ["libnum_derive"],
rustlibs:[
"libbytes",
"liblog_rust",
"libnum_traits",
"libthiserror",
],
host_supported: true,
}
rust_test {
name: "libuwb_uci_packet_tests",
defaults: ["libuwb_uci_packet_defaults"],
target: {
android: {
test_suites: [
"general-tests",
"mts-uwb"
],
test_config_template: "uwb_rust_test_config_template.xml",
},
host: {
test_suites: [
"general-tests",
],
},
},
// Support multilib variants (using different suffix per sub-architecture), which is needed on
// build targets with secondary architectures, as the MTS test suite packaging logic flattens
// all test artifacts into a single `testcases` directory.
compile_multilib: "both",
multilib: {
lib32: {
suffix: "32",
},
lib64: {
suffix: "",
},
},
auto_gen_config: true,
}
rust_library {
name: "libuwb_uci_packets",
defaults: ["libuwb_uci_packet_defaults"],
crate_name: "uwb_uci_packets",
apex_available: [
"//apex_available:platform",
"com.android.uwb",
],
min_sdk_version: "Tiramisu",
vendor_available: true,
}
genrule {
name: "UwbGeneratedPackets_rust",
tools: [
"bluetooth_packetgen",
],
cmd: "$(location bluetooth_packetgen) --include=external/uwb/src --out=$(genDir) $(in) --rust",
srcs: [
"rust/uwb_uci_packets/uci_packets.pdl",
],
out: [
"rust/uwb_uci_packets/uci_packets.rs",
],
}
rust_defaults {
name: "libuwb_core_defaults",
srcs: ["rust/uwb_core/src/lib.rs"],
lints: "android",
clippy_lints: "android",
rustlibs: [
"libbytes",
"libnum_traits",
"liblog_rust",
"libthiserror",
"libtokio",
"libuwb_uci_packets",
],
proc_macros: [
"libasync_trait",
],
min_sdk_version: "Tiramisu",
}
rust_library {
name: "libuwb_core",
defaults: ["libuwb_core_defaults"],
crate_name: "uwb_core",
}
rust_test {
name: "libuwb_core_tests",
defaults: ["libuwb_core_defaults"],
rustlibs: [
"libenv_logger",
],
}
rust_fuzz {
name: "uwb_uci_rust_fuzzer",
srcs: [
"fuzz/fuzzer.rs",
],
rustlibs: [
"android.hardware.uwb-V1-rust",
"libarbitrary",
"liblog_rust",
"libnum_traits",
"libtokio",
"libuwb_uci_packets",
"libuwb_uci_rust",
],
fuzz_config: {
cc: [
"android-uwb-team@google.com",
],
componentid: 1042770,
fuzz_on_haiku_device: true,
fuzz_on_haiku_host: true,
},
}