1*e0df4000SAndroid Build Coastguard Workerpackage { 2*e0df4000SAndroid Build Coastguard Worker default_applicable_licenses: ["external_uwb_license"], 3*e0df4000SAndroid Build Coastguard Worker} 4*e0df4000SAndroid Build Coastguard Worker 5*e0df4000SAndroid Build Coastguard Workerrust_defaults { 6*e0df4000SAndroid Build Coastguard Worker name: "libuwb_uci_packet_defaults", 7*e0df4000SAndroid Build Coastguard Worker srcs: [ 8*e0df4000SAndroid Build Coastguard Worker "rust/uwb_uci_packets/src/lib.rs", 9*e0df4000SAndroid Build Coastguard Worker ":UwbGeneratedPackets_rust", 10*e0df4000SAndroid Build Coastguard Worker ], 11*e0df4000SAndroid Build Coastguard Worker edition: "2021", 12*e0df4000SAndroid Build Coastguard Worker proc_macros: ["libnum_derive"], 13*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 14*e0df4000SAndroid Build Coastguard Worker "libbytes", 15*e0df4000SAndroid Build Coastguard Worker "liblog_rust", 16*e0df4000SAndroid Build Coastguard Worker "libnum_traits", 17*e0df4000SAndroid Build Coastguard Worker "libpdl_runtime", 18*e0df4000SAndroid Build Coastguard Worker "libzeroize", 19*e0df4000SAndroid Build Coastguard Worker ], 20*e0df4000SAndroid Build Coastguard Worker host_supported: true, 21*e0df4000SAndroid Build Coastguard Worker} 22*e0df4000SAndroid Build Coastguard Worker 23*e0df4000SAndroid Build Coastguard Workerrust_test { 24*e0df4000SAndroid Build Coastguard Worker name: "libuwb_uci_packet_tests", 25*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_uci_packet_defaults"], 26*e0df4000SAndroid Build Coastguard Worker target: { 27*e0df4000SAndroid Build Coastguard Worker android: { 28*e0df4000SAndroid Build Coastguard Worker test_suites: [ 29*e0df4000SAndroid Build Coastguard Worker "general-tests", 30*e0df4000SAndroid Build Coastguard Worker "mts-uwb", 31*e0df4000SAndroid Build Coastguard Worker ], 32*e0df4000SAndroid Build Coastguard Worker test_config_template: "uwb_rust_test_config_template.xml", 33*e0df4000SAndroid Build Coastguard Worker }, 34*e0df4000SAndroid Build Coastguard Worker host: { 35*e0df4000SAndroid Build Coastguard Worker test_suites: [ 36*e0df4000SAndroid Build Coastguard Worker "general-tests", 37*e0df4000SAndroid Build Coastguard Worker ], 38*e0df4000SAndroid Build Coastguard Worker // See b/268061150 39*e0df4000SAndroid Build Coastguard Worker stem: "libuwb_uci_packet_tests_host", 40*e0df4000SAndroid Build Coastguard Worker }, 41*e0df4000SAndroid Build Coastguard Worker }, 42*e0df4000SAndroid Build Coastguard Worker // Support multilib variants (using different suffix per sub-architecture), which is needed on 43*e0df4000SAndroid Build Coastguard Worker // build targets with secondary architectures, as the MTS test suite packaging logic flattens 44*e0df4000SAndroid Build Coastguard Worker // all test artifacts into a single `testcases` directory. 45*e0df4000SAndroid Build Coastguard Worker compile_multilib: "both", 46*e0df4000SAndroid Build Coastguard Worker multilib: { 47*e0df4000SAndroid Build Coastguard Worker lib32: { 48*e0df4000SAndroid Build Coastguard Worker suffix: "32", 49*e0df4000SAndroid Build Coastguard Worker }, 50*e0df4000SAndroid Build Coastguard Worker lib64: { 51*e0df4000SAndroid Build Coastguard Worker suffix: "64", 52*e0df4000SAndroid Build Coastguard Worker }, 53*e0df4000SAndroid Build Coastguard Worker }, 54*e0df4000SAndroid Build Coastguard Worker auto_gen_config: true, 55*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "33", 56*e0df4000SAndroid Build Coastguard Worker} 57*e0df4000SAndroid Build Coastguard Worker 58*e0df4000SAndroid Build Coastguard Workerrust_library { 59*e0df4000SAndroid Build Coastguard Worker name: "libuwb_uci_packets", 60*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_uci_packet_defaults"], 61*e0df4000SAndroid Build Coastguard Worker crate_name: "uwb_uci_packets", 62*e0df4000SAndroid Build Coastguard Worker apex_available: [ 63*e0df4000SAndroid Build Coastguard Worker "//apex_available:platform", 64*e0df4000SAndroid Build Coastguard Worker "com.android.uwb", 65*e0df4000SAndroid Build Coastguard Worker ], 66*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "Tiramisu", 67*e0df4000SAndroid Build Coastguard Worker vendor_available: true, 68*e0df4000SAndroid Build Coastguard Worker} 69*e0df4000SAndroid Build Coastguard Worker 70*e0df4000SAndroid Build Coastguard Workergenrule { 71*e0df4000SAndroid Build Coastguard Worker name: "UwbGeneratedPackets_rust", 72*e0df4000SAndroid Build Coastguard Worker defaults: ["pdl_rust_legacy_generator_defaults"], 73*e0df4000SAndroid Build Coastguard Worker srcs: [ 74*e0df4000SAndroid Build Coastguard Worker "rust/uwb_uci_packets/uci_packets.pdl", 75*e0df4000SAndroid Build Coastguard Worker ], 76*e0df4000SAndroid Build Coastguard Worker out: [ 77*e0df4000SAndroid Build Coastguard Worker "rust/uwb_uci_packets/uci_packets.rs", 78*e0df4000SAndroid Build Coastguard Worker ], 79*e0df4000SAndroid Build Coastguard Worker} 80*e0df4000SAndroid Build Coastguard Worker 81*e0df4000SAndroid Build Coastguard Workerrust_defaults { 82*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core_defaults", 83*e0df4000SAndroid Build Coastguard Worker srcs: ["rust/uwb_core/src/lib.rs"], 84*e0df4000SAndroid Build Coastguard Worker edition: "2021", 85*e0df4000SAndroid Build Coastguard Worker lints: "android", 86*e0df4000SAndroid Build Coastguard Worker clippy_lints: "android", 87*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 88*e0df4000SAndroid Build Coastguard Worker "libbytes", 89*e0df4000SAndroid Build Coastguard Worker "libnum_traits", 90*e0df4000SAndroid Build Coastguard Worker "liblog_rust", 91*e0df4000SAndroid Build Coastguard Worker "libpdl_runtime", 92*e0df4000SAndroid Build Coastguard Worker "libthiserror", 93*e0df4000SAndroid Build Coastguard Worker "libtokio", 94*e0df4000SAndroid Build Coastguard Worker "libuwb_uci_packets", 95*e0df4000SAndroid Build Coastguard Worker "libzeroize", 96*e0df4000SAndroid Build Coastguard Worker ], 97*e0df4000SAndroid Build Coastguard Worker proc_macros: [ 98*e0df4000SAndroid Build Coastguard Worker "libasync_trait", 99*e0df4000SAndroid Build Coastguard Worker "libnum_derive", 100*e0df4000SAndroid Build Coastguard Worker ], 101*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "Tiramisu", 102*e0df4000SAndroid Build Coastguard Worker} 103*e0df4000SAndroid Build Coastguard Worker 104*e0df4000SAndroid Build Coastguard Worker// Build uwb_core library with the production version of Aconfig flags lib. 105*e0df4000SAndroid Build Coastguard Workerrust_library { 106*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core", 107*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_core_defaults"], 108*e0df4000SAndroid Build Coastguard Worker crate_name: "uwb_core", 109*e0df4000SAndroid Build Coastguard Worker apex_available: [ 110*e0df4000SAndroid Build Coastguard Worker "com.android.uwb", 111*e0df4000SAndroid Build Coastguard Worker ], 112*e0df4000SAndroid Build Coastguard Worker} 113*e0df4000SAndroid Build Coastguard Worker 114*e0df4000SAndroid Build Coastguard Worker// Builds uwb_core library with "mock-utils" enabled. 115*e0df4000SAndroid Build Coastguard Worker// This enables mock methods to be used for testing external crates. 116*e0df4000SAndroid Build Coastguard Workerrust_library { 117*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core_with_mock", 118*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_core_defaults"], 119*e0df4000SAndroid Build Coastguard Worker crate_name: "uwb_core", 120*e0df4000SAndroid Build Coastguard Worker features: ["mock-utils"], 121*e0df4000SAndroid Build Coastguard Worker host_supported: true, 122*e0df4000SAndroid Build Coastguard Worker native_coverage: false, 123*e0df4000SAndroid Build Coastguard Worker} 124*e0df4000SAndroid Build Coastguard Worker 125*e0df4000SAndroid Build Coastguard Worker// The test target uses the test version of Aconfig flags lib, as that has 126*e0df4000SAndroid Build Coastguard Worker// support for setting the flag values in unit tests. 127*e0df4000SAndroid Build Coastguard Workerrust_test { 128*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core_tests", 129*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_core_defaults"], 130*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 131*e0df4000SAndroid Build Coastguard Worker "libenv_logger", 132*e0df4000SAndroid Build Coastguard Worker "libtempfile", 133*e0df4000SAndroid Build Coastguard Worker ], 134*e0df4000SAndroid Build Coastguard Worker target: { 135*e0df4000SAndroid Build Coastguard Worker android: { 136*e0df4000SAndroid Build Coastguard Worker test_suites: [ 137*e0df4000SAndroid Build Coastguard Worker "general-tests", 138*e0df4000SAndroid Build Coastguard Worker "mts-uwb", 139*e0df4000SAndroid Build Coastguard Worker ], 140*e0df4000SAndroid Build Coastguard Worker test_config_template: "uwb_rust_test_config_template.xml", 141*e0df4000SAndroid Build Coastguard Worker }, 142*e0df4000SAndroid Build Coastguard Worker }, 143*e0df4000SAndroid Build Coastguard Worker // Support multilib variants (using different suffix per sub-architecture), which is needed on 144*e0df4000SAndroid Build Coastguard Worker // build targets with secondary architectures, as the MTS test suite packaging logic flattens 145*e0df4000SAndroid Build Coastguard Worker // all test artifacts into a single `testcases` directory. 146*e0df4000SAndroid Build Coastguard Worker compile_multilib: "both", 147*e0df4000SAndroid Build Coastguard Worker multilib: { 148*e0df4000SAndroid Build Coastguard Worker lib32: { 149*e0df4000SAndroid Build Coastguard Worker suffix: "32", 150*e0df4000SAndroid Build Coastguard Worker }, 151*e0df4000SAndroid Build Coastguard Worker lib64: { 152*e0df4000SAndroid Build Coastguard Worker suffix: "64", 153*e0df4000SAndroid Build Coastguard Worker }, 154*e0df4000SAndroid Build Coastguard Worker }, 155*e0df4000SAndroid Build Coastguard Worker auto_gen_config: true, 156*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "33", 157*e0df4000SAndroid Build Coastguard Worker} 158*e0df4000SAndroid Build Coastguard Worker 159*e0df4000SAndroid Build Coastguard Workerrust_binary { 160*e0df4000SAndroid Build Coastguard Worker name: "uwb_core_examples", 161*e0df4000SAndroid Build Coastguard Worker srcs: ["rust/uwb_core/examples/main.rs"], 162*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 163*e0df4000SAndroid Build Coastguard Worker "libenv_logger", 164*e0df4000SAndroid Build Coastguard Worker "liblog_rust", 165*e0df4000SAndroid Build Coastguard Worker "libtokio", 166*e0df4000SAndroid Build Coastguard Worker "libuwb_core", 167*e0df4000SAndroid Build Coastguard Worker ], 168*e0df4000SAndroid Build Coastguard Worker proc_macros: [ 169*e0df4000SAndroid Build Coastguard Worker "libasync_trait", 170*e0df4000SAndroid Build Coastguard Worker ], 171*e0df4000SAndroid Build Coastguard Worker 172*e0df4000SAndroid Build Coastguard Worker lints: "android", 173*e0df4000SAndroid Build Coastguard Worker clippy_lints: "android", 174*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "Tiramisu", 175*e0df4000SAndroid Build Coastguard Worker} 176*e0df4000SAndroid Build Coastguard Worker 177*e0df4000SAndroid Build Coastguard Worker// Build the uwb_core library with "proto" feature enabled. 178*e0df4000SAndroid Build Coastguard Worker// It's used for fuzzer test. 179*e0df4000SAndroid Build Coastguard Workerrust_library { 180*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core_with_proto", 181*e0df4000SAndroid Build Coastguard Worker defaults: ["libuwb_core_defaults"], 182*e0df4000SAndroid Build Coastguard Worker crate_name: "uwb_core", 183*e0df4000SAndroid Build Coastguard Worker srcs: [ 184*e0df4000SAndroid Build Coastguard Worker // Generate the protobuf bindings. 185*e0df4000SAndroid Build Coastguard Worker // These genrule follows the logic of rust/uwb_core/build.rs. 186*e0df4000SAndroid Build Coastguard Worker ":gen_uwb_core_proto", 187*e0df4000SAndroid Build Coastguard Worker ":include_uwb_core_proto", 188*e0df4000SAndroid Build Coastguard Worker ], 189*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 190*e0df4000SAndroid Build Coastguard Worker "libprotobuf", 191*e0df4000SAndroid Build Coastguard Worker ], 192*e0df4000SAndroid Build Coastguard Worker flags: [ 193*e0df4000SAndroid Build Coastguard Worker // Required due to the protoc-gen-rust tool emitting invalid 194*e0df4000SAndroid Build Coastguard Worker // annotations. This can be removed when we upgrade to protobuf-4, 195*e0df4000SAndroid Build Coastguard Worker // if we patch protobuf-3 to no longer emit `#![allow(box_pointers)]`, 196*e0df4000SAndroid Build Coastguard Worker // or switch to using a `rust_protobuf` rule instead of a `genrule`. 197*e0df4000SAndroid Build Coastguard Worker "-A renamed_and_removed_lints", 198*e0df4000SAndroid Build Coastguard Worker ], 199*e0df4000SAndroid Build Coastguard Worker features: ["proto"], 200*e0df4000SAndroid Build Coastguard Worker host_supported: true, 201*e0df4000SAndroid Build Coastguard Worker native_coverage: false, 202*e0df4000SAndroid Build Coastguard Worker} 203*e0df4000SAndroid Build Coastguard Worker 204*e0df4000SAndroid Build Coastguard Workergenrule { 205*e0df4000SAndroid Build Coastguard Worker name: "gen_uwb_core_proto", 206*e0df4000SAndroid Build Coastguard Worker tools: [ 207*e0df4000SAndroid Build Coastguard Worker "aprotoc", 208*e0df4000SAndroid Build Coastguard Worker "protoc-gen-rust", 209*e0df4000SAndroid Build Coastguard Worker ], 210*e0df4000SAndroid Build Coastguard Worker cmd: "$(location aprotoc)" + 211*e0df4000SAndroid Build Coastguard Worker " --proto_path=`dirname $(in)`" + 212*e0df4000SAndroid Build Coastguard Worker " --plugin=protoc-gen-rust=$(location protoc-gen-rust)" + 213*e0df4000SAndroid Build Coastguard Worker " --rust_out=$(genDir) $(in)", 214*e0df4000SAndroid Build Coastguard Worker srcs: [ 215*e0df4000SAndroid Build Coastguard Worker "rust/uwb_core/protos/uwb_service.proto", 216*e0df4000SAndroid Build Coastguard Worker ], 217*e0df4000SAndroid Build Coastguard Worker out: [ 218*e0df4000SAndroid Build Coastguard Worker "uwb_service.rs", 219*e0df4000SAndroid Build Coastguard Worker ], 220*e0df4000SAndroid Build Coastguard Worker} 221*e0df4000SAndroid Build Coastguard Worker 222*e0df4000SAndroid Build Coastguard Workergenrule { 223*e0df4000SAndroid Build Coastguard Worker name: "include_uwb_core_proto", 224*e0df4000SAndroid Build Coastguard Worker cmd: "echo '#[path = \"uwb_service.rs\"]' > $(out);" + 225*e0df4000SAndroid Build Coastguard Worker "echo 'pub mod bindings;' >> $(out);", 226*e0df4000SAndroid Build Coastguard Worker out: [ 227*e0df4000SAndroid Build Coastguard Worker "proto_bindings.rs", 228*e0df4000SAndroid Build Coastguard Worker ], 229*e0df4000SAndroid Build Coastguard Worker} 230*e0df4000SAndroid Build Coastguard Worker 231*e0df4000SAndroid Build Coastguard Workerrust_fuzz { 232*e0df4000SAndroid Build Coastguard Worker name: "uwb_core_fuzzer", 233*e0df4000SAndroid Build Coastguard Worker srcs: [ 234*e0df4000SAndroid Build Coastguard Worker "rust/uwb_core/fuzz/proto_uwb_service_fuzzer.rs", 235*e0df4000SAndroid Build Coastguard Worker ], 236*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 237*e0df4000SAndroid Build Coastguard Worker "libarbitrary", 238*e0df4000SAndroid Build Coastguard Worker "libuwb_core_with_proto", 239*e0df4000SAndroid Build Coastguard Worker ], 240*e0df4000SAndroid Build Coastguard Worker fuzz_config: { 241*e0df4000SAndroid Build Coastguard Worker cc: [ 242*e0df4000SAndroid Build Coastguard Worker "[email protected]", 243*e0df4000SAndroid Build Coastguard Worker ], 244*e0df4000SAndroid Build Coastguard Worker componentid: 1042770, 245*e0df4000SAndroid Build Coastguard Worker fuzz_on_haiku_device: false, 246*e0df4000SAndroid Build Coastguard Worker fuzz_on_haiku_host: false, 247*e0df4000SAndroid Build Coastguard Worker }, 248*e0df4000SAndroid Build Coastguard Worker 249*e0df4000SAndroid Build Coastguard Worker} 250*e0df4000SAndroid Build Coastguard Worker 251*e0df4000SAndroid Build Coastguard Workerrust_defaults { 252*e0df4000SAndroid Build Coastguard Worker name: "libuci_hal_android_defaults", 253*e0df4000SAndroid Build Coastguard Worker crate_name: "uci_hal_android", 254*e0df4000SAndroid Build Coastguard Worker lints: "android", 255*e0df4000SAndroid Build Coastguard Worker clippy_lints: "android", 256*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 257*e0df4000SAndroid Build Coastguard Worker "android.hardware.uwb-V1-rust", 258*e0df4000SAndroid Build Coastguard Worker "libanyhow", 259*e0df4000SAndroid Build Coastguard Worker "libbinder_rs", 260*e0df4000SAndroid Build Coastguard Worker "libbinder_tokio_rs", 261*e0df4000SAndroid Build Coastguard Worker "libbytes", 262*e0df4000SAndroid Build Coastguard Worker "libjni_legacy", 263*e0df4000SAndroid Build Coastguard Worker "liblog_rust", 264*e0df4000SAndroid Build Coastguard Worker "libpdl_runtime", 265*e0df4000SAndroid Build Coastguard Worker "libthiserror", 266*e0df4000SAndroid Build Coastguard Worker "libtokio", 267*e0df4000SAndroid Build Coastguard Worker "libuwb_uci_packets", 268*e0df4000SAndroid Build Coastguard Worker ], 269*e0df4000SAndroid Build Coastguard Worker target: { 270*e0df4000SAndroid Build Coastguard Worker android: { 271*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 272*e0df4000SAndroid Build Coastguard Worker "librustutils", 273*e0df4000SAndroid Build Coastguard Worker ], 274*e0df4000SAndroid Build Coastguard Worker }, 275*e0df4000SAndroid Build Coastguard Worker }, 276*e0df4000SAndroid Build Coastguard Worker proc_macros: [ 277*e0df4000SAndroid Build Coastguard Worker "libasync_trait", 278*e0df4000SAndroid Build Coastguard Worker ], 279*e0df4000SAndroid Build Coastguard Worker apex_available: [ 280*e0df4000SAndroid Build Coastguard Worker "com.android.uwb", 281*e0df4000SAndroid Build Coastguard Worker ], 282*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "Tiramisu", 283*e0df4000SAndroid Build Coastguard Worker srcs: [ 284*e0df4000SAndroid Build Coastguard Worker "rust/uci_hal_android/lib.rs", 285*e0df4000SAndroid Build Coastguard Worker ], 286*e0df4000SAndroid Build Coastguard Worker} 287*e0df4000SAndroid Build Coastguard Worker 288*e0df4000SAndroid Build Coastguard Workerrust_library { 289*e0df4000SAndroid Build Coastguard Worker name: "libuci_hal_android", 290*e0df4000SAndroid Build Coastguard Worker defaults: ["libuci_hal_android_defaults"], 291*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 292*e0df4000SAndroid Build Coastguard Worker "libuwb_core", 293*e0df4000SAndroid Build Coastguard Worker ], 294*e0df4000SAndroid Build Coastguard Worker} 295*e0df4000SAndroid Build Coastguard Worker 296*e0df4000SAndroid Build Coastguard Worker// uci_hal_android built with uwb_core_with_mock. 297*e0df4000SAndroid Build Coastguard Worker// Used to replace uci_hal_android in place where mock version of uwb_core is 298*e0df4000SAndroid Build Coastguard Worker// used. 299*e0df4000SAndroid Build Coastguard Workerrust_library { 300*e0df4000SAndroid Build Coastguard Worker name: "libuci_hal_android_with_mock", 301*e0df4000SAndroid Build Coastguard Worker defaults: ["libuci_hal_android_defaults"], 302*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 303*e0df4000SAndroid Build Coastguard Worker "libuwb_core_with_mock", 304*e0df4000SAndroid Build Coastguard Worker ], 305*e0df4000SAndroid Build Coastguard Worker native_coverage: false, 306*e0df4000SAndroid Build Coastguard Worker} 307*e0df4000SAndroid Build Coastguard Worker 308*e0df4000SAndroid Build Coastguard Workerrust_test { 309*e0df4000SAndroid Build Coastguard Worker name: "libuci_hal_android_tests", 310*e0df4000SAndroid Build Coastguard Worker defaults: ["libuci_hal_android_defaults"], 311*e0df4000SAndroid Build Coastguard Worker rustlibs: [ 312*e0df4000SAndroid Build Coastguard Worker "libenv_logger", 313*e0df4000SAndroid Build Coastguard Worker "libtempfile", 314*e0df4000SAndroid Build Coastguard Worker "libuwb_core", 315*e0df4000SAndroid Build Coastguard Worker ], 316*e0df4000SAndroid Build Coastguard Worker target: { 317*e0df4000SAndroid Build Coastguard Worker android: { 318*e0df4000SAndroid Build Coastguard Worker test_suites: [ 319*e0df4000SAndroid Build Coastguard Worker "general-tests", 320*e0df4000SAndroid Build Coastguard Worker "mts-uwb", 321*e0df4000SAndroid Build Coastguard Worker ], 322*e0df4000SAndroid Build Coastguard Worker test_config_template: "uwb_rust_test_config_template.xml", 323*e0df4000SAndroid Build Coastguard Worker }, 324*e0df4000SAndroid Build Coastguard Worker }, 325*e0df4000SAndroid Build Coastguard Worker // Support multilib variants (using different suffix per sub-architecture), which is needed on 326*e0df4000SAndroid Build Coastguard Worker // build targets with secondary architectures, as the MTS test suite packaging logic flattens 327*e0df4000SAndroid Build Coastguard Worker // all test artifacts into a single `testcases` directory. 328*e0df4000SAndroid Build Coastguard Worker compile_multilib: "both", 329*e0df4000SAndroid Build Coastguard Worker multilib: { 330*e0df4000SAndroid Build Coastguard Worker lib32: { 331*e0df4000SAndroid Build Coastguard Worker suffix: "32", 332*e0df4000SAndroid Build Coastguard Worker }, 333*e0df4000SAndroid Build Coastguard Worker lib64: { 334*e0df4000SAndroid Build Coastguard Worker suffix: "64", 335*e0df4000SAndroid Build Coastguard Worker }, 336*e0df4000SAndroid Build Coastguard Worker }, 337*e0df4000SAndroid Build Coastguard Worker auto_gen_config: true, 338*e0df4000SAndroid Build Coastguard Worker min_sdk_version: "33", 339*e0df4000SAndroid Build Coastguard Worker} 340*e0df4000SAndroid Build Coastguard Worker 341*e0df4000SAndroid Build Coastguard Worker// Generate the artifacts zip for uwb_core library and its dependencies. 342*e0df4000SAndroid Build Coastguard Workergenrule { 343*e0df4000SAndroid Build Coastguard Worker name: "uwb_core_artifacts", 344*e0df4000SAndroid Build Coastguard Worker tools: [ 345*e0df4000SAndroid Build Coastguard Worker "pdlc", 346*e0df4000SAndroid Build Coastguard Worker "soong_zip", 347*e0df4000SAndroid Build Coastguard Worker ], 348*e0df4000SAndroid Build Coastguard Worker srcs: [ 349*e0df4000SAndroid Build Coastguard Worker "rust/uwb_core/**/*", 350*e0df4000SAndroid Build Coastguard Worker "rust/uwb_uci_packets/**/*", 351*e0df4000SAndroid Build Coastguard Worker "rust/Cargo.toml", 352*e0df4000SAndroid Build Coastguard Worker ], 353*e0df4000SAndroid Build Coastguard Worker cmd: "mkdir $(genDir)/artifacts && " + // Create a artifacts directory and copy the source code into it. 354*e0df4000SAndroid Build Coastguard Worker "cp -r external/uwb/src/rust/uwb_core " + 355*e0df4000SAndroid Build Coastguard Worker " external/uwb/src/rust/uwb_uci_packets " + 356*e0df4000SAndroid Build Coastguard Worker " external/uwb/src/rust/Cargo.toml " + 357*e0df4000SAndroid Build Coastguard Worker " $(genDir)/artifacts && " + 358*e0df4000SAndroid Build Coastguard Worker 359*e0df4000SAndroid Build Coastguard Worker // Generate uci_packets.rs at $(genDir)/artifacts/uwb_uci_packets/. 360*e0df4000SAndroid Build Coastguard Worker "$(location pdlc) --output-format rust " + 361*e0df4000SAndroid Build Coastguard Worker " external/uwb/src/rust/uwb_uci_packets/uci_packets.pdl " + 362*e0df4000SAndroid Build Coastguard Worker " > $(genDir)/artifacts/uwb_uci_packets/uci_packets.rs && " + 363*e0df4000SAndroid Build Coastguard Worker 364*e0df4000SAndroid Build Coastguard Worker // Pack the artifacts directory and clean up the directory. 365*e0df4000SAndroid Build Coastguard Worker "$(location soong_zip) -o $(out) " + 366*e0df4000SAndroid Build Coastguard Worker " -C $(genDir)/artifacts " + 367*e0df4000SAndroid Build Coastguard Worker " -D $(genDir)/artifacts && " + 368*e0df4000SAndroid Build Coastguard Worker "rm -rf $(genDir)/artifacts", 369*e0df4000SAndroid Build Coastguard Worker out: [ 370*e0df4000SAndroid Build Coastguard Worker "uwb_core_artifacts.zip", 371*e0df4000SAndroid Build Coastguard Worker ], 372*e0df4000SAndroid Build Coastguard Worker} 373*e0df4000SAndroid Build Coastguard Worker 374*e0df4000SAndroid Build Coastguard Worker// Verify if the uwb_core library can be built via cargo system. 375*e0df4000SAndroid Build Coastguard Workersh_test_host { 376*e0df4000SAndroid Build Coastguard Worker name: "libuwb_core_cargo_test", 377*e0df4000SAndroid Build Coastguard Worker src: "tests/libuwb_core_cargo_test.sh", 378*e0df4000SAndroid Build Coastguard Worker test_config: "tests/libuwb_core_cargo_test.xml", 379*e0df4000SAndroid Build Coastguard Worker test_suites: ["general-tests"], 380*e0df4000SAndroid Build Coastguard Worker data: [":uwb_core_artifacts"], 381*e0df4000SAndroid Build Coastguard Worker test_options: { 382*e0df4000SAndroid Build Coastguard Worker unit_test: false, 383*e0df4000SAndroid Build Coastguard Worker }, 384*e0df4000SAndroid Build Coastguard Worker} 385