1*e51878c1SAndroid Build Coastguard Workerpackage { 2*e51878c1SAndroid Build Coastguard Worker default_team: "trendy_team_android_rust", 3*e51878c1SAndroid Build Coastguard Worker default_applicable_licenses: ["Android-Apache-2.0"], 4*e51878c1SAndroid Build Coastguard Worker} 5*e51878c1SAndroid Build Coastguard Worker 6*e51878c1SAndroid Build Coastguard Workerrust_defaults { 7*e51878c1SAndroid Build Coastguard Worker name: "librustutils_defaults", 8*e51878c1SAndroid Build Coastguard Worker srcs: ["lib.rs"], 9*e51878c1SAndroid Build Coastguard Worker host_supported: true, 10*e51878c1SAndroid Build Coastguard Worker target: { 11*e51878c1SAndroid Build Coastguard Worker android: { 12*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 13*e51878c1SAndroid Build Coastguard Worker "libcutils_bindgen", 14*e51878c1SAndroid Build Coastguard Worker "libsystem_properties_bindgen_sys", 15*e51878c1SAndroid Build Coastguard Worker ], 16*e51878c1SAndroid Build Coastguard Worker }, 17*e51878c1SAndroid Build Coastguard Worker }, 18*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 19*e51878c1SAndroid Build Coastguard Worker "libanyhow", 20*e51878c1SAndroid Build Coastguard Worker "liblibc", 21*e51878c1SAndroid Build Coastguard Worker "libnix", 22*e51878c1SAndroid Build Coastguard Worker "libthiserror", 23*e51878c1SAndroid Build Coastguard Worker ], 24*e51878c1SAndroid Build Coastguard Worker} 25*e51878c1SAndroid Build Coastguard Worker 26*e51878c1SAndroid Build Coastguard Workerrust_library { 27*e51878c1SAndroid Build Coastguard Worker name: "librustutils", 28*e51878c1SAndroid Build Coastguard Worker crate_name: "rustutils", 29*e51878c1SAndroid Build Coastguard Worker defaults: ["librustutils_defaults"], 30*e51878c1SAndroid Build Coastguard Worker shared_libs: [ 31*e51878c1SAndroid Build Coastguard Worker "libbase", 32*e51878c1SAndroid Build Coastguard Worker "libcutils", 33*e51878c1SAndroid Build Coastguard Worker ], 34*e51878c1SAndroid Build Coastguard Worker apex_available: [ 35*e51878c1SAndroid Build Coastguard Worker "//apex_available:platform", 36*e51878c1SAndroid Build Coastguard Worker "com.android.btservices", 37*e51878c1SAndroid Build Coastguard Worker "com.android.compos", 38*e51878c1SAndroid Build Coastguard Worker "com.android.uwb", 39*e51878c1SAndroid Build Coastguard Worker "com.android.virt", 40*e51878c1SAndroid Build Coastguard Worker "com.android.configinfrastructure", 41*e51878c1SAndroid Build Coastguard Worker ], 42*e51878c1SAndroid Build Coastguard Worker product_available: true, 43*e51878c1SAndroid Build Coastguard Worker vendor_available: true, 44*e51878c1SAndroid Build Coastguard Worker min_sdk_version: "29", 45*e51878c1SAndroid Build Coastguard Worker} 46*e51878c1SAndroid Build Coastguard Worker 47*e51878c1SAndroid Build Coastguard Workerrust_test { 48*e51878c1SAndroid Build Coastguard Worker name: "librustutils_test", 49*e51878c1SAndroid Build Coastguard Worker crate_name: "librustutils_test_test", 50*e51878c1SAndroid Build Coastguard Worker defaults: ["librustutils_defaults"], 51*e51878c1SAndroid Build Coastguard Worker test_suites: ["general-tests"], 52*e51878c1SAndroid Build Coastguard Worker auto_gen_config: true, 53*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 54*e51878c1SAndroid Build Coastguard Worker "libtempfile", 55*e51878c1SAndroid Build Coastguard Worker ], 56*e51878c1SAndroid Build Coastguard Worker // Below flags are to run each test function in a separate process which is needed for 57*e51878c1SAndroid Build Coastguard Worker // the crate::inherited_fd::test. Note that tests still run in parallel. 58*e51878c1SAndroid Build Coastguard Worker flags: [ 59*e51878c1SAndroid Build Coastguard Worker "-C panic=abort", 60*e51878c1SAndroid Build Coastguard Worker "-Z panic_abort_tests", 61*e51878c1SAndroid Build Coastguard Worker ] 62*e51878c1SAndroid Build Coastguard Worker} 63*e51878c1SAndroid Build Coastguard Worker 64*e51878c1SAndroid Build Coastguard Worker// Build a separate rust_library rather than depending directly on libsystem_properties_bindgen, 65*e51878c1SAndroid Build Coastguard Worker// to work around the fact that rust_bindgen targets only produce rlibs and not dylibs, which would 66*e51878c1SAndroid Build Coastguard Worker// result in duplicate conflicting versions of liblibc. This will hopefully be fixed in the build 67*e51878c1SAndroid Build Coastguard Worker// system, at which point we can delete this target and go back to using libsystem_properties_bindgen 68*e51878c1SAndroid Build Coastguard Worker// directly. 69*e51878c1SAndroid Build Coastguard Workerrust_library { 70*e51878c1SAndroid Build Coastguard Worker name: "libsystem_properties_bindgen_sys", 71*e51878c1SAndroid Build Coastguard Worker crate_name: "system_properties_bindgen", 72*e51878c1SAndroid Build Coastguard Worker srcs: [ 73*e51878c1SAndroid Build Coastguard Worker ":libsystem_properties_bindgen", 74*e51878c1SAndroid Build Coastguard Worker ], 75*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 76*e51878c1SAndroid Build Coastguard Worker "liblibc", 77*e51878c1SAndroid Build Coastguard Worker ], 78*e51878c1SAndroid Build Coastguard Worker product_available: true, 79*e51878c1SAndroid Build Coastguard Worker vendor_available: true, 80*e51878c1SAndroid Build Coastguard Worker apex_available: [ 81*e51878c1SAndroid Build Coastguard Worker "//apex_available:platform", 82*e51878c1SAndroid Build Coastguard Worker "com.android.btservices", 83*e51878c1SAndroid Build Coastguard Worker "com.android.compos", 84*e51878c1SAndroid Build Coastguard Worker "com.android.uwb", 85*e51878c1SAndroid Build Coastguard Worker "com.android.virt", 86*e51878c1SAndroid Build Coastguard Worker "com.android.configinfrastructure", 87*e51878c1SAndroid Build Coastguard Worker ], 88*e51878c1SAndroid Build Coastguard Worker min_sdk_version: "29", 89*e51878c1SAndroid Build Coastguard Worker lints: "none", 90*e51878c1SAndroid Build Coastguard Worker clippy_lints: "none", 91*e51878c1SAndroid Build Coastguard Worker} 92*e51878c1SAndroid Build Coastguard Worker 93*e51878c1SAndroid Build Coastguard Workerrust_bindgen { 94*e51878c1SAndroid Build Coastguard Worker name: "libsystem_properties_bindgen", 95*e51878c1SAndroid Build Coastguard Worker wrapper_src: "bindgen/system_properties.h", 96*e51878c1SAndroid Build Coastguard Worker crate_name: "system_properties_bindgen", 97*e51878c1SAndroid Build Coastguard Worker source_stem: "bindings", 98*e51878c1SAndroid Build Coastguard Worker 99*e51878c1SAndroid Build Coastguard Worker bindgen_flags: [ 100*e51878c1SAndroid Build Coastguard Worker "--allowlist-function=__system_property_find", 101*e51878c1SAndroid Build Coastguard Worker "--allowlist-function=__system_property_foreach", 102*e51878c1SAndroid Build Coastguard Worker "--allowlist-function=__system_property_read_callback", 103*e51878c1SAndroid Build Coastguard Worker "--allowlist-function=__system_property_set", 104*e51878c1SAndroid Build Coastguard Worker "--allowlist-function=__system_property_wait", 105*e51878c1SAndroid Build Coastguard Worker "--blocklist-type=timespec", 106*e51878c1SAndroid Build Coastguard Worker "--raw-line", 107*e51878c1SAndroid Build Coastguard Worker "use libc::timespec;", 108*e51878c1SAndroid Build Coastguard Worker ], 109*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 110*e51878c1SAndroid Build Coastguard Worker "liblibc", 111*e51878c1SAndroid Build Coastguard Worker ], 112*e51878c1SAndroid Build Coastguard Worker product_available: true, 113*e51878c1SAndroid Build Coastguard Worker vendor_available: true, 114*e51878c1SAndroid Build Coastguard Worker apex_available: [ 115*e51878c1SAndroid Build Coastguard Worker "//apex_available:platform", 116*e51878c1SAndroid Build Coastguard Worker "com.android.btservices", 117*e51878c1SAndroid Build Coastguard Worker "com.android.compos", 118*e51878c1SAndroid Build Coastguard Worker "com.android.uwb", 119*e51878c1SAndroid Build Coastguard Worker "com.android.virt", 120*e51878c1SAndroid Build Coastguard Worker "com.android.configinfrastructure", 121*e51878c1SAndroid Build Coastguard Worker ], 122*e51878c1SAndroid Build Coastguard Worker min_sdk_version: "29", 123*e51878c1SAndroid Build Coastguard Worker} 124*e51878c1SAndroid Build Coastguard Worker 125*e51878c1SAndroid Build Coastguard Workerrust_bindgen { 126*e51878c1SAndroid Build Coastguard Worker name: "libcutils_bindgen", 127*e51878c1SAndroid Build Coastguard Worker wrapper_src: "bindgen/cutils.h", 128*e51878c1SAndroid Build Coastguard Worker crate_name: "cutils_bindgen", 129*e51878c1SAndroid Build Coastguard Worker source_stem: "bindings", 130*e51878c1SAndroid Build Coastguard Worker header_libs: ["libcutils_headers"], 131*e51878c1SAndroid Build Coastguard Worker bindgen_flags: [ 132*e51878c1SAndroid Build Coastguard Worker "--allowlist-function", 133*e51878c1SAndroid Build Coastguard Worker "android_get_control_socket", 134*e51878c1SAndroid Build Coastguard Worker "--allowlist-var", 135*e51878c1SAndroid Build Coastguard Worker "AID_KEYSTORE", 136*e51878c1SAndroid Build Coastguard Worker "--allowlist-var", 137*e51878c1SAndroid Build Coastguard Worker "AID_ROOT", 138*e51878c1SAndroid Build Coastguard Worker "--allowlist-var", 139*e51878c1SAndroid Build Coastguard Worker "AID_SHELL", 140*e51878c1SAndroid Build Coastguard Worker "--allowlist-var", 141*e51878c1SAndroid Build Coastguard Worker "AID_SYSTEM", 142*e51878c1SAndroid Build Coastguard Worker "--allowlist-var", 143*e51878c1SAndroid Build Coastguard Worker "AID_USER_OFFSET", 144*e51878c1SAndroid Build Coastguard Worker ], 145*e51878c1SAndroid Build Coastguard Worker product_available: true, 146*e51878c1SAndroid Build Coastguard Worker vendor_available: true, 147*e51878c1SAndroid Build Coastguard Worker apex_available: [ 148*e51878c1SAndroid Build Coastguard Worker "//apex_available:platform", 149*e51878c1SAndroid Build Coastguard Worker "com.android.btservices", 150*e51878c1SAndroid Build Coastguard Worker "com.android.compos", 151*e51878c1SAndroid Build Coastguard Worker "com.android.uwb", 152*e51878c1SAndroid Build Coastguard Worker "com.android.virt", 153*e51878c1SAndroid Build Coastguard Worker "com.android.configinfrastructure", 154*e51878c1SAndroid Build Coastguard Worker ], 155*e51878c1SAndroid Build Coastguard Worker min_sdk_version: "29", 156*e51878c1SAndroid Build Coastguard Worker} 157*e51878c1SAndroid Build Coastguard Worker 158*e51878c1SAndroid Build Coastguard Workerrust_test { 159*e51878c1SAndroid Build Coastguard Worker name: "libsystem_properties_bindgen_test", 160*e51878c1SAndroid Build Coastguard Worker srcs: [":libsystem_properties_bindgen"], 161*e51878c1SAndroid Build Coastguard Worker crate_name: "system_properties_bindgen_test", 162*e51878c1SAndroid Build Coastguard Worker test_suites: ["general-tests"], 163*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 164*e51878c1SAndroid Build Coastguard Worker "liblibc", 165*e51878c1SAndroid Build Coastguard Worker ], 166*e51878c1SAndroid Build Coastguard Worker auto_gen_config: true, 167*e51878c1SAndroid Build Coastguard Worker clippy_lints: "none", 168*e51878c1SAndroid Build Coastguard Worker lints: "none", 169*e51878c1SAndroid Build Coastguard Worker} 170*e51878c1SAndroid Build Coastguard Worker 171*e51878c1SAndroid Build Coastguard Workerrust_test { 172*e51878c1SAndroid Build Coastguard Worker name: "libcutils_bindgen_test", 173*e51878c1SAndroid Build Coastguard Worker srcs: [":libcutils_bindgen"], 174*e51878c1SAndroid Build Coastguard Worker crate_name: "cutils_bindgen_test", 175*e51878c1SAndroid Build Coastguard Worker test_suites: ["general-tests"], 176*e51878c1SAndroid Build Coastguard Worker auto_gen_config: true, 177*e51878c1SAndroid Build Coastguard Worker clippy_lints: "none", 178*e51878c1SAndroid Build Coastguard Worker lints: "none", 179*e51878c1SAndroid Build Coastguard Worker} 180*e51878c1SAndroid Build Coastguard Worker 181*e51878c1SAndroid Build Coastguard Workerrust_fuzz { 182*e51878c1SAndroid Build Coastguard Worker name: "system_properties_fuzzer", 183*e51878c1SAndroid Build Coastguard Worker srcs: ["system_properties_fuzzer.rs"], 184*e51878c1SAndroid Build Coastguard Worker rustlibs: [ 185*e51878c1SAndroid Build Coastguard Worker "libarbitrary", 186*e51878c1SAndroid Build Coastguard Worker "librustutils", 187*e51878c1SAndroid Build Coastguard Worker ], 188*e51878c1SAndroid Build Coastguard Worker fuzz_config: { 189*e51878c1SAndroid Build Coastguard Worker fuzz_on_haiku_device: true, 190*e51878c1SAndroid Build Coastguard Worker fuzz_on_haiku_host: true, 191*e51878c1SAndroid Build Coastguard Worker }, 192*e51878c1SAndroid Build Coastguard Worker} 193