blob: 49d3401a4f7123a08fa8341dee764f62c0471645 [file] [log] [blame]
Bob Badour3c538232021-02-12 21:26:48 -08001package {
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
Stephen Crane2a3c2502020-06-16 17:48:35 -070010rust_library {
11 name: "libbinder_rs",
12 crate_name: "binder",
13 srcs: ["src/lib.rs"],
14 shared_libs: [
Stephen Crane2a3c2502020-06-16 17:48:35 -070015 "libutils",
16 ],
17 rustlibs: [
18 "liblibc",
Stephen Crane994a0f02020-08-11 14:47:29 -070019 "libbinder_ndk_sys",
20 ],
21 host_supported: true,
Yifan Hongf856a982020-10-30 14:51:17 -070022 target: {
23 darwin: {
24 enabled: false,
25 }
Jiyong Parkb1af7832021-02-16 13:30:57 +090026 },
27 apex_available: [
28 "//apex_available:platform",
29 "com.android.virt",
30 ],
Stephen Crane994a0f02020-08-11 14:47:29 -070031}
32
33rust_library {
34 name: "libbinder_ndk_sys",
35 crate_name: "binder_ndk_sys",
36 srcs: [
37 "sys/lib.rs",
38 ":libbinder_ndk_bindgen",
39 ],
40 shared_libs: [
41 "libbinder_ndk",
Stephen Crane2a3c2502020-06-16 17:48:35 -070042 ],
43 host_supported: true,
Yifan Hongf856a982020-10-30 14:51:17 -070044 target: {
45 darwin: {
46 enabled: false,
47 }
Jiyong Parkb1af7832021-02-16 13:30:57 +090048 },
49 apex_available: [
50 "//apex_available:platform",
51 "com.android.virt",
52 ],
ThiƩbaud Weksteen3160ce92021-04-29 20:54:39 +020053 lints: "none",
54 clippy_lints: "none",
Stephen Crane2a3c2502020-06-16 17:48:35 -070055}
56
57rust_bindgen {
58 name: "libbinder_ndk_bindgen",
59 crate_name: "binder_ndk_bindgen",
Ivan Lozano7929c082020-09-23 13:33:42 -040060 wrapper_src: "sys/BinderBindings.hpp",
Stephen Crane994a0f02020-08-11 14:47:29 -070061 source_stem: "bindings",
Stephen Crane2a3c2502020-06-16 17:48:35 -070062 bindgen_flags: [
63 // Unfortunately the only way to specify the rust_non_exhaustive enum
64 // style for a type is to make it the default
65 "--default-enum-style", "rust_non_exhaustive",
66 // and then specify constified enums for the enums we don't want
67 // rustified
68 "--constified-enum", "android::c_interface::consts::.*",
69
Joel Galenson6ad53242021-04-19 09:39:12 -070070 "--allowlist-type", "android::c_interface::.*",
71 "--allowlist-type", "AStatus",
72 "--allowlist-type", "AIBinder_Class",
73 "--allowlist-type", "AIBinder",
74 "--allowlist-type", "AIBinder_Weak",
75 "--allowlist-type", "AIBinder_DeathRecipient",
76 "--allowlist-type", "AParcel",
77 "--allowlist-type", "binder_status_t",
78 "--allowlist-function", ".*",
Stephen Crane2a3c2502020-06-16 17:48:35 -070079 ],
80 shared_libs: [
81 "libbinder_ndk",
82 ],
83 host_supported: true,
84
85 // Currently necessary for host builds
86 // TODO(b/31559095): bionic on host should define this
87 target: {
88 host: {
89 cflags: [
90 "-D__INTRODUCED_IN(n)=",
91 "-D__assert(a,b,c)=",
92 // We want all the APIs to be available on the host.
93 "-D__ANDROID_API__=10000",
94 ],
95 },
Yifan Hongf856a982020-10-30 14:51:17 -070096 darwin: {
97 enabled: false,
98 },
Stephen Crane2a3c2502020-06-16 17:48:35 -070099 },
Jiyong Parkb1af7832021-02-16 13:30:57 +0900100 apex_available: [
101 "//apex_available:platform",
102 "com.android.virt",
103 ],
Stephen Crane2a3c2502020-06-16 17:48:35 -0700104}
105
106rust_test {
107 name: "libbinder_rs-internal_test",
108 crate_name: "binder",
109 srcs: ["src/lib.rs"],
110 test_suites: ["general-tests"],
111 auto_gen_config: true,
112 shared_libs: [
113 "libbinder_ndk",
114 ],
115 rustlibs: [
116 "liblibc",
Stephen Crane994a0f02020-08-11 14:47:29 -0700117 "libbinder_ndk_sys",
Stephen Crane2a3c2502020-06-16 17:48:35 -0700118 ],
119}