xref: /aosp_15_r20/frameworks/native/libs/binder/rust/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Workerpackage {
2*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
3*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
4*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
5*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
6*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
7*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
8*38e8c45fSAndroid Build Coastguard Worker}
9*38e8c45fSAndroid Build Coastguard Worker
10*38e8c45fSAndroid Build Coastguard Workerrust_library {
11*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rs",
12*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder",
13*38e8c45fSAndroid Build Coastguard Worker    srcs: ["src/lib.rs"],
14*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
15*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_sys",
16*38e8c45fSAndroid Build Coastguard Worker        "libdowncast_rs",
17*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
18*38e8c45fSAndroid Build Coastguard Worker        "liblog_rust",
19*38e8c45fSAndroid Build Coastguard Worker    ],
20*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
21*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
22*38e8c45fSAndroid Build Coastguard Worker    product_available: true,
23*38e8c45fSAndroid Build Coastguard Worker    target: {
24*38e8c45fSAndroid Build Coastguard Worker        darwin: {
25*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
26*38e8c45fSAndroid Build Coastguard Worker        },
27*38e8c45fSAndroid Build Coastguard Worker    },
28*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
29*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
30*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:anyapex",
31*38e8c45fSAndroid Build Coastguard Worker    ],
32*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "Tiramisu",
33*38e8c45fSAndroid Build Coastguard Worker}
34*38e8c45fSAndroid Build Coastguard Worker
35*38e8c45fSAndroid Build Coastguard Workerrust_library {
36*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rs_on_trusty_mock",
37*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder",
38*38e8c45fSAndroid Build Coastguard Worker    srcs: ["src/lib.rs"],
39*38e8c45fSAndroid Build Coastguard Worker    cfgs: [
40*38e8c45fSAndroid Build Coastguard Worker        "trusty",
41*38e8c45fSAndroid Build Coastguard Worker    ],
42*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
43*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_sys_on_trusty_mock",
44*38e8c45fSAndroid Build Coastguard Worker        "libdowncast_rs",
45*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
46*38e8c45fSAndroid Build Coastguard Worker    ],
47*38e8c45fSAndroid Build Coastguard Worker    vendor: true,
48*38e8c45fSAndroid Build Coastguard Worker}
49*38e8c45fSAndroid Build Coastguard Worker
50*38e8c45fSAndroid Build Coastguard Workerrust_library {
51*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_tokio_rs",
52*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_tokio",
53*38e8c45fSAndroid Build Coastguard Worker    srcs: ["binder_tokio/lib.rs"],
54*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
55*38e8c45fSAndroid Build Coastguard Worker        "libbinder_rs",
56*38e8c45fSAndroid Build Coastguard Worker        "libtokio",
57*38e8c45fSAndroid Build Coastguard Worker    ],
58*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
59*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
60*38e8c45fSAndroid Build Coastguard Worker    product_available: true,
61*38e8c45fSAndroid Build Coastguard Worker    target: {
62*38e8c45fSAndroid Build Coastguard Worker        darwin: {
63*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
64*38e8c45fSAndroid Build Coastguard Worker        },
65*38e8c45fSAndroid Build Coastguard Worker    },
66*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
67*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
68*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:anyapex",
69*38e8c45fSAndroid Build Coastguard Worker    ],
70*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "Tiramisu",
71*38e8c45fSAndroid Build Coastguard Worker}
72*38e8c45fSAndroid Build Coastguard Worker
73*38e8c45fSAndroid Build Coastguard Workerrust_library {
74*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_ndk_sys",
75*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_ndk_sys",
76*38e8c45fSAndroid Build Coastguard Worker    srcs: [
77*38e8c45fSAndroid Build Coastguard Worker        "sys/lib.rs",
78*38e8c45fSAndroid Build Coastguard Worker        ":libbinder_ndk_bindgen",
79*38e8c45fSAndroid Build Coastguard Worker    ],
80*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
81*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk",
82*38e8c45fSAndroid Build Coastguard Worker    ],
83*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
84*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
85*38e8c45fSAndroid Build Coastguard Worker    ],
86*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
87*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
88*38e8c45fSAndroid Build Coastguard Worker    product_available: true,
89*38e8c45fSAndroid Build Coastguard Worker    target: {
90*38e8c45fSAndroid Build Coastguard Worker        darwin: {
91*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
92*38e8c45fSAndroid Build Coastguard Worker        },
93*38e8c45fSAndroid Build Coastguard Worker    },
94*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
95*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
96*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:anyapex",
97*38e8c45fSAndroid Build Coastguard Worker    ],
98*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "Tiramisu",
99*38e8c45fSAndroid Build Coastguard Worker    lints: "none",
100*38e8c45fSAndroid Build Coastguard Worker    clippy_lints: "none",
101*38e8c45fSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
102*38e8c45fSAndroid Build Coastguard Worker}
103*38e8c45fSAndroid Build Coastguard Worker
104*38e8c45fSAndroid Build Coastguard Workerrust_library {
105*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_ndk_sys_on_trusty_mock",
106*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_ndk_sys",
107*38e8c45fSAndroid Build Coastguard Worker    srcs: [
108*38e8c45fSAndroid Build Coastguard Worker        "sys/lib.rs",
109*38e8c45fSAndroid Build Coastguard Worker        ":libbinder_ndk_bindgen_on_trusty_mock",
110*38e8c45fSAndroid Build Coastguard Worker    ],
111*38e8c45fSAndroid Build Coastguard Worker    cfgs: [
112*38e8c45fSAndroid Build Coastguard Worker        "trusty",
113*38e8c45fSAndroid Build Coastguard Worker    ],
114*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
115*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_on_trusty_mock",
116*38e8c45fSAndroid Build Coastguard Worker    ],
117*38e8c45fSAndroid Build Coastguard Worker    vendor: true,
118*38e8c45fSAndroid Build Coastguard Worker    // Lints are checked separately for libbinder_ndk_sys.
119*38e8c45fSAndroid Build Coastguard Worker    // The Trusty mock copy pulls in extra headers that
120*38e8c45fSAndroid Build Coastguard Worker    // don't pass the lints for the bindgen output.
121*38e8c45fSAndroid Build Coastguard Worker    lints: "none",
122*38e8c45fSAndroid Build Coastguard Worker}
123*38e8c45fSAndroid Build Coastguard Worker
124*38e8c45fSAndroid Build Coastguard Workerrust_bindgen {
125*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_ndk_bindgen",
126*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_ndk_bindgen",
127*38e8c45fSAndroid Build Coastguard Worker    wrapper_src: "sys/BinderBindings.hpp",
128*38e8c45fSAndroid Build Coastguard Worker    source_stem: "bindings",
129*38e8c45fSAndroid Build Coastguard Worker    bindgen_flag_files: [
130*38e8c45fSAndroid Build Coastguard Worker        // Unfortunately the only way to specify the rust_non_exhaustive enum
131*38e8c45fSAndroid Build Coastguard Worker        // style for a type is to make it the default
132*38e8c45fSAndroid Build Coastguard Worker        // and then specify constified enums for the enums we don't want
133*38e8c45fSAndroid Build Coastguard Worker        // rustified
134*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_bindgen_flags.txt",
135*38e8c45fSAndroid Build Coastguard Worker    ],
136*38e8c45fSAndroid Build Coastguard Worker    bindgen_flags: [
137*38e8c45fSAndroid Build Coastguard Worker        "--blocklist-type",
138*38e8c45fSAndroid Build Coastguard Worker        "sockaddr",
139*38e8c45fSAndroid Build Coastguard Worker        "--raw-line",
140*38e8c45fSAndroid Build Coastguard Worker        "use libc::sockaddr;",
141*38e8c45fSAndroid Build Coastguard Worker    ],
142*38e8c45fSAndroid Build Coastguard Worker    cflags: [
143*38e8c45fSAndroid Build Coastguard Worker        "-DANDROID_PLATFORM",
144*38e8c45fSAndroid Build Coastguard Worker    ],
145*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
146*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk",
147*38e8c45fSAndroid Build Coastguard Worker    ],
148*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
149*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
150*38e8c45fSAndroid Build Coastguard Worker    ],
151*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
152*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
153*38e8c45fSAndroid Build Coastguard Worker    product_available: true,
154*38e8c45fSAndroid Build Coastguard Worker
155*38e8c45fSAndroid Build Coastguard Worker    // Currently necessary for host builds
156*38e8c45fSAndroid Build Coastguard Worker    // TODO(b/31559095): bionic on host should define this
157*38e8c45fSAndroid Build Coastguard Worker    target: {
158*38e8c45fSAndroid Build Coastguard Worker        darwin: {
159*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
160*38e8c45fSAndroid Build Coastguard Worker        },
161*38e8c45fSAndroid Build Coastguard Worker    },
162*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
163*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
164*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:anyapex",
165*38e8c45fSAndroid Build Coastguard Worker    ],
166*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "Tiramisu",
167*38e8c45fSAndroid Build Coastguard Worker}
168*38e8c45fSAndroid Build Coastguard Worker
169*38e8c45fSAndroid Build Coastguard Workerrust_bindgen {
170*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_ndk_bindgen_on_trusty_mock",
171*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_ndk_bindgen",
172*38e8c45fSAndroid Build Coastguard Worker    wrapper_src: "sys/BinderBindings.hpp",
173*38e8c45fSAndroid Build Coastguard Worker    source_stem: "bindings",
174*38e8c45fSAndroid Build Coastguard Worker    defaults: [
175*38e8c45fSAndroid Build Coastguard Worker        "trusty_mock_defaults",
176*38e8c45fSAndroid Build Coastguard Worker    ],
177*38e8c45fSAndroid Build Coastguard Worker
178*38e8c45fSAndroid Build Coastguard Worker    bindgen_flag_files: [
179*38e8c45fSAndroid Build Coastguard Worker        // Unfortunately the only way to specify the rust_non_exhaustive enum
180*38e8c45fSAndroid Build Coastguard Worker        // style for a type is to make it the default
181*38e8c45fSAndroid Build Coastguard Worker        // and then specify constified enums for the enums we don't want
182*38e8c45fSAndroid Build Coastguard Worker        // rustified
183*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_bindgen_flags.txt",
184*38e8c45fSAndroid Build Coastguard Worker    ],
185*38e8c45fSAndroid Build Coastguard Worker    cflags: [
186*38e8c45fSAndroid Build Coastguard Worker        "-DANDROID_PLATFORM",
187*38e8c45fSAndroid Build Coastguard Worker    ],
188*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
189*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_on_trusty_mock",
190*38e8c45fSAndroid Build Coastguard Worker        "libc++",
191*38e8c45fSAndroid Build Coastguard Worker    ],
192*38e8c45fSAndroid Build Coastguard Worker}
193*38e8c45fSAndroid Build Coastguard Worker
194*38e8c45fSAndroid Build Coastguard Workerrust_test {
195*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rs-internal_test",
196*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder",
197*38e8c45fSAndroid Build Coastguard Worker    srcs: ["src/lib.rs"],
198*38e8c45fSAndroid Build Coastguard Worker    test_suites: ["general-tests"],
199*38e8c45fSAndroid Build Coastguard Worker    auto_gen_config: true,
200*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
201*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk",
202*38e8c45fSAndroid Build Coastguard Worker    ],
203*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
204*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_sys",
205*38e8c45fSAndroid Build Coastguard Worker        "libdowncast_rs",
206*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
207*38e8c45fSAndroid Build Coastguard Worker        "liblog_rust",
208*38e8c45fSAndroid Build Coastguard Worker    ],
209*38e8c45fSAndroid Build Coastguard Worker}
210*38e8c45fSAndroid Build Coastguard Worker
211*38e8c45fSAndroid Build Coastguard Workerrust_test {
212*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_ndk_bindgen_test",
213*38e8c45fSAndroid Build Coastguard Worker    srcs: [":libbinder_ndk_bindgen"],
214*38e8c45fSAndroid Build Coastguard Worker    crate_name: "binder_ndk_bindgen",
215*38e8c45fSAndroid Build Coastguard Worker    test_suites: ["general-tests"],
216*38e8c45fSAndroid Build Coastguard Worker    auto_gen_config: true,
217*38e8c45fSAndroid Build Coastguard Worker    clippy_lints: "none",
218*38e8c45fSAndroid Build Coastguard Worker    lints: "none",
219*38e8c45fSAndroid Build Coastguard Worker    rustlibs: [
220*38e8c45fSAndroid Build Coastguard Worker        "liblibc",
221*38e8c45fSAndroid Build Coastguard Worker    ],
222*38e8c45fSAndroid Build Coastguard Worker}
223