blob: 174fe8aba83ba352b5dd83e906608da4721eca02 [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",
Andrei Homescu2617c842023-08-08 02:52:23 +000021 "libcfg_if",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000022 "libdowncast_rs",
David Brazdilefb56832022-11-16 11:47:00 +000023 "libforeign_types",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000024 "liblibc",
Alice Wang893a9912022-10-24 10:44:09 +000025 "liblog_rust",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000026 ],
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000027 visibility: [
28 "//device/google/cuttlefish/shared/minidroid/sample",
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000029 "//packages/modules/Virtualization:__subpackages__",
Raphael Blisteinefc3f602023-02-16 16:12:05 +000030 "//system/software_defined_vehicle:__subpackages__",
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000031 ],
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000032 apex_available: [
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000033 "//apex_available:platform",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000034 "com.android.compos",
Aidan Wolter81139db2024-08-20 19:19:37 +000035 "com.android.microfuchsia",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000036 "com.android.uwb",
37 "com.android.virt",
38 ],
39 min_sdk_version: "Tiramisu",
40}
41
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000042// Build a separate rust_library rather than depending directly on libbinder_rpc_unstable_bindgen,
43// to work around the fact that rust_bindgen targets only produce rlibs and not dylibs, which would
44// result in duplicate conflicting versions of libbinder_ndk_sys. This will hopefully be fixed in
45// the build system, at which point we can delete this target and go back to using
46// libbinder_rpc_unstable_bindgen directly.
47rust_library {
48 name: "libbinder_rpc_unstable_bindgen_sys",
49 crate_name: "binder_rpc_unstable_bindgen",
50 srcs: [
51 ":libbinder_rpc_unstable_bindgen",
52 ],
53 visibility: [":__subpackages__"],
54 rustlibs: [
55 "libbinder_ndk_sys",
56 ],
57 shared_libs: [
58 "libbinder_rpc_unstable",
59 "libutils",
60 ],
61 apex_available: [
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000062 "//apex_available:platform",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000063 "com.android.compos",
Aidan Wolter81139db2024-08-20 19:19:37 +000064 "com.android.microfuchsia",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000065 "com.android.uwb",
66 "com.android.virt",
67 ],
68 min_sdk_version: "Tiramisu",
69 lints: "none",
70 clippy_lints: "none",
71}
72
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000073// TODO(b/184872979): remove once the RPC Binder API is stabilised.
74rust_bindgen {
75 name: "libbinder_rpc_unstable_bindgen",
Matthew Maurer5fca42a2023-12-05 00:47:08 +000076 wrapper_src: "BinderBindings.hpp",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000077 crate_name: "binder_rpc_unstable_bindgen",
78 visibility: [":__subpackages__"],
79 source_stem: "bindings",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000080 bindgen_flags: [
81 "--blocklist-type",
82 "AIBinder",
83 "--raw-line",
84 "use binder_ndk_sys::AIBinder;",
David Brazdilae3ec6a2022-12-14 13:13:32 +000085 "--rustified-enum",
86 "ARpcSession_FileDescriptorTransportMode",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +000087 ],
88 rustlibs: [
89 "libbinder_ndk_sys",
90 ],
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000091 shared_libs: [
92 "libbinder_rpc_unstable",
93 "libutils",
94 ],
95 apex_available: [
Marcin Radomski9fbb1f92023-01-20 11:38:04 +000096 "//apex_available:platform",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000097 "com.android.compos",
Aidan Wolter81139db2024-08-20 19:19:37 +000098 "com.android.microfuchsia",
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +000099 "com.android.uwb",
100 "com.android.virt",
101 ],
102 min_sdk_version: "Tiramisu",
103}
104
105rust_test {
106 name: "libbinder_rpc_unstable_bindgen_test",
107 srcs: [":libbinder_rpc_unstable_bindgen"],
108 crate_name: "binder_rpc_unstable_bindgen",
Andrew Walbran34e7bdf2022-08-24 11:16:24 +0000109 rustlibs: [
110 "libbinder_ndk_sys",
111 ],
Andrew Walbranc4d1cbd2022-08-02 17:15:56 +0000112 test_suites: ["general-tests"],
113 auto_gen_config: true,
114 clippy_lints: "none",
115 lints: "none",
116}