xref: /aosp_15_r20/system/librustutils/Android.bp (revision e51878c104ea269309bae357ae559a9fff179380)
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