blob: afb73e920f756fb240d6bd411f6239766772c0a6 [file] [log] [blame]
Bob Badour9b844922022-08-25 09:28:56 -07001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "frameworks_native_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["frameworks_native_license"],
8}
9
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000010rust_library {
11 name: "librpcbinder_rs",
12 crate_name: "rpcbinder",
13 srcs: ["src/lib.rs"],
14 shared_libs: [
15 "libutils",
16 ],
17 rustlibs: [
18 "libbinder_ndk_sys",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000019 "libbinder_rpc_unstable_bindgen_sys",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000020 "libbinder_rs",
21 "libdowncast_rs",
David Brazdilefb56832022-11-16 11:47:00 +000022 "libforeign_types",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000023 "liblibc",
Alice Wang893a9912022-10-24 10:44:09 +000024 "liblog_rust",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000025 ],
26 apex_available: [
27 "com.android.compos",
28 "com.android.uwb",
29 "com.android.virt",
30 ],
31 min_sdk_version: "Tiramisu",
32}
33
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000034// Build a separate rust_library rather than depending directly on libbinder_rpc_unstable_bindgen,
35// to work around the fact that rust_bindgen targets only produce rlibs and not dylibs, which would
36// result in duplicate conflicting versions of libbinder_ndk_sys. This will hopefully be fixed in
37// the build system, at which point we can delete this target and go back to using
38// libbinder_rpc_unstable_bindgen directly.
39rust_library {
40 name: "libbinder_rpc_unstable_bindgen_sys",
41 crate_name: "binder_rpc_unstable_bindgen",
42 srcs: [
43 ":libbinder_rpc_unstable_bindgen",
44 ],
45 visibility: [":__subpackages__"],
46 rustlibs: [
47 "libbinder_ndk_sys",
48 ],
49 shared_libs: [
50 "libbinder_rpc_unstable",
51 "libutils",
52 ],
53 apex_available: [
54 "com.android.compos",
55 "com.android.uwb",
56 "com.android.virt",
57 ],
58 min_sdk_version: "Tiramisu",
59 lints: "none",
60 clippy_lints: "none",
61}
62
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000063// TODO(b/184872979): remove once the RPC Binder API is stabilised.
64rust_bindgen {
65 name: "libbinder_rpc_unstable_bindgen",
66 wrapper_src: ":libbinder_rpc_unstable_header",
67 crate_name: "binder_rpc_unstable_bindgen",
68 visibility: [":__subpackages__"],
69 source_stem: "bindings",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000070 bindgen_flags: [
David Brazdilae3ec6a2022-12-14 13:13:32 +000071 "--size_t-is-usize",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000072 "--blocklist-type",
73 "AIBinder",
74 "--raw-line",
75 "use binder_ndk_sys::AIBinder;",
David Brazdilae3ec6a2022-12-14 13:13:32 +000076 "--rustified-enum",
77 "ARpcSession_FileDescriptorTransportMode",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000078 ],
79 rustlibs: [
80 "libbinder_ndk_sys",
81 ],
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000082 shared_libs: [
83 "libbinder_rpc_unstable",
84 "libutils",
85 ],
86 apex_available: [
87 "com.android.compos",
88 "com.android.uwb",
89 "com.android.virt",
90 ],
91 min_sdk_version: "Tiramisu",
92}
93
94rust_test {
95 name: "libbinder_rpc_unstable_bindgen_test",
96 srcs: [":libbinder_rpc_unstable_bindgen"],
97 crate_name: "binder_rpc_unstable_bindgen",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000098 rustlibs: [
99 "libbinder_ndk_sys",
100 ],
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +0000101 test_suites: ["general-tests"],
102 auto_gen_config: true,
103 clippy_lints: "none",
104 lints: "none",
105}