xref: /aosp_15_r20/frameworks/native/libs/binder/Android.bp (revision 38e8c45f13ce32b0dcecb25141ffecaf386fa17f)
1*38e8c45fSAndroid Build Coastguard Worker// Copyright (C) 2009 The Android Open Source Project
2*38e8c45fSAndroid Build Coastguard Worker//
3*38e8c45fSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*38e8c45fSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*38e8c45fSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*38e8c45fSAndroid Build Coastguard Worker//
7*38e8c45fSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*38e8c45fSAndroid Build Coastguard Worker//
9*38e8c45fSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*38e8c45fSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*38e8c45fSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*38e8c45fSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*38e8c45fSAndroid Build Coastguard Worker// limitations under the License.
14*38e8c45fSAndroid Build Coastguard Worker
15*38e8c45fSAndroid Build Coastguard Workerpackage {
16*38e8c45fSAndroid Build Coastguard Worker    // See: http://go/android-license-faq
17*38e8c45fSAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
18*38e8c45fSAndroid Build Coastguard Worker    // all of the 'license_kinds' from "frameworks_native_license"
19*38e8c45fSAndroid Build Coastguard Worker    // to get the below license kinds:
20*38e8c45fSAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
21*38e8c45fSAndroid Build Coastguard Worker    default_applicable_licenses: ["frameworks_native_license"],
22*38e8c45fSAndroid Build Coastguard Worker    default_team: "trendy_team_virtualization",
23*38e8c45fSAndroid Build Coastguard Worker}
24*38e8c45fSAndroid Build Coastguard Worker
25*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
26*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_headers_base",
27*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
28*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
29*38e8c45fSAndroid Build Coastguard Worker    recovery_available: true,
30*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
31*38e8c45fSAndroid Build Coastguard Worker    native_bridge_supported: true,
32*38e8c45fSAndroid Build Coastguard Worker    cmake_snapshot_supported: true,
33*38e8c45fSAndroid Build Coastguard Worker
34*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
35*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_platform_shared",
36*38e8c45fSAndroid Build Coastguard Worker    ],
37*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
38*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_platform_shared",
39*38e8c45fSAndroid Build Coastguard Worker    ],
40*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
41*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
42*38e8c45fSAndroid Build Coastguard Worker        "com.android.media",
43*38e8c45fSAndroid Build Coastguard Worker        "com.android.media.swcodec",
44*38e8c45fSAndroid Build Coastguard Worker    ],
45*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "29",
46*38e8c45fSAndroid Build Coastguard Worker    target: {
47*38e8c45fSAndroid Build Coastguard Worker        darwin: {
48*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
49*38e8c45fSAndroid Build Coastguard Worker        },
50*38e8c45fSAndroid Build Coastguard Worker    },
51*38e8c45fSAndroid Build Coastguard Worker    visibility: [
52*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
53*38e8c45fSAndroid Build Coastguard Worker    ],
54*38e8c45fSAndroid Build Coastguard Worker}
55*38e8c45fSAndroid Build Coastguard Worker
56*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
57*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_headers",
58*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
59*38e8c45fSAndroid Build Coastguard Worker    recovery_available: true,
60*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
61*38e8c45fSAndroid Build Coastguard Worker    native_bridge_supported: true,
62*38e8c45fSAndroid Build Coastguard Worker
63*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
64*38e8c45fSAndroid Build Coastguard Worker        "libbase_headers",
65*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
66*38e8c45fSAndroid Build Coastguard Worker        "libcutils_headers",
67*38e8c45fSAndroid Build Coastguard Worker        "libutils_headers",
68*38e8c45fSAndroid Build Coastguard Worker    ],
69*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
70*38e8c45fSAndroid Build Coastguard Worker        "libbase_headers",
71*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
72*38e8c45fSAndroid Build Coastguard Worker        "libcutils_headers",
73*38e8c45fSAndroid Build Coastguard Worker        "libutils_headers",
74*38e8c45fSAndroid Build Coastguard Worker    ],
75*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
76*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
77*38e8c45fSAndroid Build Coastguard Worker        "com.android.media",
78*38e8c45fSAndroid Build Coastguard Worker        "com.android.media.swcodec",
79*38e8c45fSAndroid Build Coastguard Worker    ],
80*38e8c45fSAndroid Build Coastguard Worker    min_sdk_version: "29",
81*38e8c45fSAndroid Build Coastguard Worker    target: {
82*38e8c45fSAndroid Build Coastguard Worker        darwin: {
83*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
84*38e8c45fSAndroid Build Coastguard Worker        },
85*38e8c45fSAndroid Build Coastguard Worker    },
86*38e8c45fSAndroid Build Coastguard Worker}
87*38e8c45fSAndroid Build Coastguard Worker
88*38e8c45fSAndroid Build Coastguard Workercc_cmake_snapshot {
89*38e8c45fSAndroid Build Coastguard Worker    name: "binder_sdk",
90*38e8c45fSAndroid Build Coastguard Worker    dist: {
91*38e8c45fSAndroid Build Coastguard Worker        targets: ["binder_sdk"],
92*38e8c45fSAndroid Build Coastguard Worker        dest: "binder_sdk.zip",
93*38e8c45fSAndroid Build Coastguard Worker    },
94*38e8c45fSAndroid Build Coastguard Worker
95*38e8c45fSAndroid Build Coastguard Worker    modules_host: [
96*38e8c45fSAndroid Build Coastguard Worker        "libbinder_sdk",
97*38e8c45fSAndroid Build Coastguard Worker        "libbinder_sdk_single_threaded",
98*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk_sdk",
99*38e8c45fSAndroid Build Coastguard Worker        "googletest_cmake",
100*38e8c45fSAndroid Build Coastguard Worker
101*38e8c45fSAndroid Build Coastguard Worker        "binderRpcTestNoKernel",
102*38e8c45fSAndroid Build Coastguard Worker        "binderRpcTestSingleThreadedNoKernel",
103*38e8c45fSAndroid Build Coastguard Worker        "binderRpcWireProtocolTest",
104*38e8c45fSAndroid Build Coastguard Worker    ],
105*38e8c45fSAndroid Build Coastguard Worker    prebuilts: [
106*38e8c45fSAndroid Build Coastguard Worker        // to enable arm64 host support, build with musl - e.g. on aosp_cf_arm64_phone
107*38e8c45fSAndroid Build Coastguard Worker        "aidl",
108*38e8c45fSAndroid Build Coastguard Worker    ],
109*38e8c45fSAndroid Build Coastguard Worker    include_sources: true,
110*38e8c45fSAndroid Build Coastguard Worker    cflags: [
111*38e8c45fSAndroid Build Coastguard Worker        "-DNDEBUG",
112*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_ENABLE_LIBLOG_ASSERT",
113*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_NATIVE_HANDLE",
114*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_BLOB",
115*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_NO_LIBBASE",
116*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_NO_KERNEL_IPC_TESTING",
117*38e8c45fSAndroid Build Coastguard Worker
118*38e8c45fSAndroid Build Coastguard Worker        // from Soong's global.go commonGlobalCflags and noOverrideGlobalCflags
119*38e8c45fSAndroid Build Coastguard Worker        "-Wno-c99-designator",
120*38e8c45fSAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
121*38e8c45fSAndroid Build Coastguard Worker
122*38e8c45fSAndroid Build Coastguard Worker        // warnings that only pop up on gcc
123*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unknown-pragmas", // "pragma clang"
124*38e8c45fSAndroid Build Coastguard Worker        "-Wno-attributes", // attributes on compound-statements
125*38e8c45fSAndroid Build Coastguard Worker        "-Wno-psabi", // reminders about old ABI changes
126*38e8c45fSAndroid Build Coastguard Worker    ],
127*38e8c45fSAndroid Build Coastguard Worker    cflags_ignored: [
128*38e8c45fSAndroid Build Coastguard Worker        // gcc requires all header constexprs to be used in all dependent compilatinon units
129*38e8c45fSAndroid Build Coastguard Worker        "-Wunused-const-variable",
130*38e8c45fSAndroid Build Coastguard Worker    ],
131*38e8c45fSAndroid Build Coastguard Worker    library_mapping: [
132*38e8c45fSAndroid Build Coastguard Worker        {
133*38e8c45fSAndroid Build Coastguard Worker            android_name: "libssl",
134*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "ssl",
135*38e8c45fSAndroid Build Coastguard Worker            package_pregenerated: "external/boringssl",
136*38e8c45fSAndroid Build Coastguard Worker        },
137*38e8c45fSAndroid Build Coastguard Worker        {
138*38e8c45fSAndroid Build Coastguard Worker            android_name: "libcrypto",
139*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "crypto",
140*38e8c45fSAndroid Build Coastguard Worker            package_pregenerated: "external/boringssl",
141*38e8c45fSAndroid Build Coastguard Worker        },
142*38e8c45fSAndroid Build Coastguard Worker        {
143*38e8c45fSAndroid Build Coastguard Worker            android_name: "libgtest",
144*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "GTest::gtest",
145*38e8c45fSAndroid Build Coastguard Worker            package_pregenerated: "external/googletest",
146*38e8c45fSAndroid Build Coastguard Worker        },
147*38e8c45fSAndroid Build Coastguard Worker        {
148*38e8c45fSAndroid Build Coastguard Worker            android_name: "libgtest_main",
149*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "GTest::gtest_main",
150*38e8c45fSAndroid Build Coastguard Worker            package_pregenerated: "external/googletest",
151*38e8c45fSAndroid Build Coastguard Worker        },
152*38e8c45fSAndroid Build Coastguard Worker        {
153*38e8c45fSAndroid Build Coastguard Worker            android_name: "googletest_cmake",
154*38e8c45fSAndroid Build Coastguard Worker            package_pregenerated: "external/googletest",
155*38e8c45fSAndroid Build Coastguard Worker        },
156*38e8c45fSAndroid Build Coastguard Worker
157*38e8c45fSAndroid Build Coastguard Worker        // use libbinder_sdk and friends instead of full Android's libbinder
158*38e8c45fSAndroid Build Coastguard Worker        {
159*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_rpc_no_kernel",
160*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::libbinder_sdk",
161*38e8c45fSAndroid Build Coastguard Worker        },
162*38e8c45fSAndroid Build Coastguard Worker        {
163*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_rpc_single_threaded_no_kernel",
164*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::libbinder_sdk_single_threaded",
165*38e8c45fSAndroid Build Coastguard Worker        },
166*38e8c45fSAndroid Build Coastguard Worker        {
167*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_headers",
168*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::libbinder_headers_base",
169*38e8c45fSAndroid Build Coastguard Worker        },
170*38e8c45fSAndroid Build Coastguard Worker        {
171*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder",
172*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::libbinder_sdk",
173*38e8c45fSAndroid Build Coastguard Worker        },
174*38e8c45fSAndroid Build Coastguard Worker        {
175*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_ndk",
176*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::libbinder_ndk_sdk",
177*38e8c45fSAndroid Build Coastguard Worker        },
178*38e8c45fSAndroid Build Coastguard Worker        {
179*38e8c45fSAndroid Build Coastguard Worker            android_name: "liblog",
180*38e8c45fSAndroid Build Coastguard Worker            mapped_name: "android::liblog_stub",
181*38e8c45fSAndroid Build Coastguard Worker        },
182*38e8c45fSAndroid Build Coastguard Worker
183*38e8c45fSAndroid Build Coastguard Worker        // explicitly included by Binder tests, but not needed outside of Android
184*38e8c45fSAndroid Build Coastguard Worker        {
185*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbase",
186*38e8c45fSAndroid Build Coastguard Worker        },
187*38e8c45fSAndroid Build Coastguard Worker        {
188*38e8c45fSAndroid Build Coastguard Worker            android_name: "libcutils",
189*38e8c45fSAndroid Build Coastguard Worker        },
190*38e8c45fSAndroid Build Coastguard Worker        {
191*38e8c45fSAndroid Build Coastguard Worker            android_name: "libutils",
192*38e8c45fSAndroid Build Coastguard Worker        },
193*38e8c45fSAndroid Build Coastguard Worker
194*38e8c45fSAndroid Build Coastguard Worker        // disable tests that don't work outside of Android yet
195*38e8c45fSAndroid Build Coastguard Worker        {
196*38e8c45fSAndroid Build Coastguard Worker            android_name: "binder_rpc_test_service",
197*38e8c45fSAndroid Build Coastguard Worker        },
198*38e8c45fSAndroid Build Coastguard Worker        {
199*38e8c45fSAndroid Build Coastguard Worker            android_name: "binder_rpc_test_service_single_threaded",
200*38e8c45fSAndroid Build Coastguard Worker        },
201*38e8c45fSAndroid Build Coastguard Worker
202*38e8c45fSAndroid Build Coastguard Worker        // trusty mocks are artificially triggered and not needed outside of Android build
203*38e8c45fSAndroid Build Coastguard Worker        {
204*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_on_trusty_mock",
205*38e8c45fSAndroid Build Coastguard Worker        },
206*38e8c45fSAndroid Build Coastguard Worker        {
207*38e8c45fSAndroid Build Coastguard Worker            android_name: "libbinder_ndk_on_trusty_mock",
208*38e8c45fSAndroid Build Coastguard Worker        },
209*38e8c45fSAndroid Build Coastguard Worker        {
210*38e8c45fSAndroid Build Coastguard Worker            android_name: "binderRpcTestService_on_trusty_mock",
211*38e8c45fSAndroid Build Coastguard Worker        },
212*38e8c45fSAndroid Build Coastguard Worker        {
213*38e8c45fSAndroid Build Coastguard Worker            android_name: "binderRpcTest_on_trusty_mock",
214*38e8c45fSAndroid Build Coastguard Worker        },
215*38e8c45fSAndroid Build Coastguard Worker    ],
216*38e8c45fSAndroid Build Coastguard Worker}
217*38e8c45fSAndroid Build Coastguard Worker
218*38e8c45fSAndroid Build Coastguard Worker// These interfaces are android-specific implementation unrelated to binder
219*38e8c45fSAndroid Build Coastguard Worker// transport itself and should be moved to AIDL or in domain-specific libs.
220*38e8c45fSAndroid Build Coastguard Worker//
221*38e8c45fSAndroid Build Coastguard Worker// Currently, these are only on system android (not vendor, not host)
222*38e8c45fSAndroid Build Coastguard Worker// TODO(b/183654927) - move these into separate libraries
223*38e8c45fSAndroid Build Coastguard Worker
224*38e8c45fSAndroid Build Coastguard Workerfilegroup {
225*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_device_interface_sources",
226*38e8c45fSAndroid Build Coastguard Worker    srcs: [
227*38e8c45fSAndroid Build Coastguard Worker        "IPermissionController.cpp",
228*38e8c45fSAndroid Build Coastguard Worker        "PermissionCache.cpp",
229*38e8c45fSAndroid Build Coastguard Worker        "PermissionController.cpp",
230*38e8c45fSAndroid Build Coastguard Worker    ],
231*38e8c45fSAndroid Build Coastguard Worker}
232*38e8c45fSAndroid Build Coastguard Worker
233*38e8c45fSAndroid Build Coastguard Workercc_defaults {
234*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_common_defaults",
235*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
236*38e8c45fSAndroid Build Coastguard Worker
237*38e8c45fSAndroid Build Coastguard Worker    srcs: [
238*38e8c45fSAndroid Build Coastguard Worker        "Binder.cpp",
239*38e8c45fSAndroid Build Coastguard Worker        "BpBinder.cpp",
240*38e8c45fSAndroid Build Coastguard Worker        "Debug.cpp",
241*38e8c45fSAndroid Build Coastguard Worker        "FdTrigger.cpp",
242*38e8c45fSAndroid Build Coastguard Worker        "IInterface.cpp",
243*38e8c45fSAndroid Build Coastguard Worker        "IResultReceiver.cpp",
244*38e8c45fSAndroid Build Coastguard Worker        "Parcel.cpp",
245*38e8c45fSAndroid Build Coastguard Worker        "ParcelFileDescriptor.cpp",
246*38e8c45fSAndroid Build Coastguard Worker        "RecordedTransaction.cpp",
247*38e8c45fSAndroid Build Coastguard Worker        "RpcSession.cpp",
248*38e8c45fSAndroid Build Coastguard Worker        "RpcServer.cpp",
249*38e8c45fSAndroid Build Coastguard Worker        "RpcState.cpp",
250*38e8c45fSAndroid Build Coastguard Worker        "RpcTransportRaw.cpp",
251*38e8c45fSAndroid Build Coastguard Worker        "Stability.cpp",
252*38e8c45fSAndroid Build Coastguard Worker        "Status.cpp",
253*38e8c45fSAndroid Build Coastguard Worker        "TextOutput.cpp",
254*38e8c45fSAndroid Build Coastguard Worker        "Utils.cpp",
255*38e8c45fSAndroid Build Coastguard Worker        "file.cpp",
256*38e8c45fSAndroid Build Coastguard Worker    ],
257*38e8c45fSAndroid Build Coastguard Worker
258*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
259*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
260*38e8c45fSAndroid Build Coastguard Worker    ],
261*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
262*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
263*38e8c45fSAndroid Build Coastguard Worker    ],
264*38e8c45fSAndroid Build Coastguard Worker
265*38e8c45fSAndroid Build Coastguard Worker    cflags: [
266*38e8c45fSAndroid Build Coastguard Worker        "-Wextra",
267*38e8c45fSAndroid Build Coastguard Worker        "-Wextra-semi",
268*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
269*38e8c45fSAndroid Build Coastguard Worker        "-Wzero-as-null-pointer-constant",
270*38e8c45fSAndroid Build Coastguard Worker        "-Wreorder-init-list",
271*38e8c45fSAndroid Build Coastguard Worker        "-Wunused-const-variable",
272*38e8c45fSAndroid Build Coastguard Worker        "-DANDROID_BASE_UNIQUE_FD_DISABLE_IMPLICIT_CONVERSION",
273*38e8c45fSAndroid Build Coastguard Worker        "-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
274*38e8c45fSAndroid Build Coastguard Worker        // Hide symbols by default and set the BUILDING_LIBBINDER macro so that
275*38e8c45fSAndroid Build Coastguard Worker        // the code knows to export them.
276*38e8c45fSAndroid Build Coastguard Worker        "-fvisibility=hidden",
277*38e8c45fSAndroid Build Coastguard Worker        "-DBUILDING_LIBBINDER",
278*38e8c45fSAndroid Build Coastguard Worker    ],
279*38e8c45fSAndroid Build Coastguard Worker
280*38e8c45fSAndroid Build Coastguard Worker    target: {
281*38e8c45fSAndroid Build Coastguard Worker        vendor: {
282*38e8c45fSAndroid Build Coastguard Worker            // Trimming the exported symbols reveals a bug in vendor code, so
283*38e8c45fSAndroid Build Coastguard Worker            // disable it for the vendor variant for now. http://b/349657329
284*38e8c45fSAndroid Build Coastguard Worker            // TODO: Fix the issue and remove this override.
285*38e8c45fSAndroid Build Coastguard Worker            cflags: ["-fvisibility=default"],
286*38e8c45fSAndroid Build Coastguard Worker        },
287*38e8c45fSAndroid Build Coastguard Worker    },
288*38e8c45fSAndroid Build Coastguard Worker}
289*38e8c45fSAndroid Build Coastguard Worker
290*38e8c45fSAndroid Build Coastguard Workercc_defaults {
291*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_android_defaults",
292*38e8c45fSAndroid Build Coastguard Worker
293*38e8c45fSAndroid Build Coastguard Worker    // TODO(b/31559095): get headers from bionic on host
294*38e8c45fSAndroid Build Coastguard Worker    include_dirs: [
295*38e8c45fSAndroid Build Coastguard Worker        "bionic/libc/kernel/android/uapi/",
296*38e8c45fSAndroid Build Coastguard Worker        "bionic/libc/kernel/uapi/",
297*38e8c45fSAndroid Build Coastguard Worker    ],
298*38e8c45fSAndroid Build Coastguard Worker
299*38e8c45fSAndroid Build Coastguard Worker    srcs: [
300*38e8c45fSAndroid Build Coastguard Worker        "OS_android.cpp",
301*38e8c45fSAndroid Build Coastguard Worker        "OS_unix_base.cpp",
302*38e8c45fSAndroid Build Coastguard Worker    ],
303*38e8c45fSAndroid Build Coastguard Worker
304*38e8c45fSAndroid Build Coastguard Worker    target: {
305*38e8c45fSAndroid Build Coastguard Worker        host: {
306*38e8c45fSAndroid Build Coastguard Worker            srcs: [
307*38e8c45fSAndroid Build Coastguard Worker                "UtilsHost.cpp",
308*38e8c45fSAndroid Build Coastguard Worker            ],
309*38e8c45fSAndroid Build Coastguard Worker        },
310*38e8c45fSAndroid Build Coastguard Worker        android: {
311*38e8c45fSAndroid Build Coastguard Worker            lto: {
312*38e8c45fSAndroid Build Coastguard Worker                thin: true,
313*38e8c45fSAndroid Build Coastguard Worker            },
314*38e8c45fSAndroid Build Coastguard Worker        },
315*38e8c45fSAndroid Build Coastguard Worker    },
316*38e8c45fSAndroid Build Coastguard Worker
317*38e8c45fSAndroid Build Coastguard Worker    aidl: {
318*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
319*38e8c45fSAndroid Build Coastguard Worker    },
320*38e8c45fSAndroid Build Coastguard Worker
321*38e8c45fSAndroid Build Coastguard Worker    product_variables: {
322*38e8c45fSAndroid Build Coastguard Worker        debuggable: {
323*38e8c45fSAndroid Build Coastguard Worker            cflags: [
324*38e8c45fSAndroid Build Coastguard Worker                "-DBINDER_RPC_DEV_SERVERS",
325*38e8c45fSAndroid Build Coastguard Worker                "-DBINDER_ENABLE_RECORDING",
326*38e8c45fSAndroid Build Coastguard Worker            ],
327*38e8c45fSAndroid Build Coastguard Worker        },
328*38e8c45fSAndroid Build Coastguard Worker    },
329*38e8c45fSAndroid Build Coastguard Worker
330*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
331*38e8c45fSAndroid Build Coastguard Worker        "libcutils",
332*38e8c45fSAndroid Build Coastguard Worker        "liblog",
333*38e8c45fSAndroid Build Coastguard Worker        "libutils",
334*38e8c45fSAndroid Build Coastguard Worker    ],
335*38e8c45fSAndroid Build Coastguard Worker
336*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
337*38e8c45fSAndroid Build Coastguard Worker        "libbase",
338*38e8c45fSAndroid Build Coastguard Worker    ],
339*38e8c45fSAndroid Build Coastguard Worker
340*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
341*38e8c45fSAndroid Build Coastguard Worker        "jni_headers",
342*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers",
343*38e8c45fSAndroid Build Coastguard Worker    ],
344*38e8c45fSAndroid Build Coastguard Worker
345*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
346*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers",
347*38e8c45fSAndroid Build Coastguard Worker    ],
348*38e8c45fSAndroid Build Coastguard Worker
349*38e8c45fSAndroid Build Coastguard Worker    sanitize: {
350*38e8c45fSAndroid Build Coastguard Worker        misc_undefined: ["integer"],
351*38e8c45fSAndroid Build Coastguard Worker    },
352*38e8c45fSAndroid Build Coastguard Worker
353*38e8c45fSAndroid Build Coastguard Worker    tidy: true,
354*38e8c45fSAndroid Build Coastguard Worker    tidy_flags: [
355*38e8c45fSAndroid Build Coastguard Worker        // Only check our headers
356*38e8c45fSAndroid Build Coastguard Worker        "--header-filter=^.*frameworks/native/libs/binder/.*.h$",
357*38e8c45fSAndroid Build Coastguard Worker    ],
358*38e8c45fSAndroid Build Coastguard Worker    tidy_checks: [
359*38e8c45fSAndroid Build Coastguard Worker        "-performance-no-int-to-ptr",
360*38e8c45fSAndroid Build Coastguard Worker    ],
361*38e8c45fSAndroid Build Coastguard Worker    tidy_checks_as_errors: [
362*38e8c45fSAndroid Build Coastguard Worker        // Explicitly list the checks that should not occur in this module.
363*38e8c45fSAndroid Build Coastguard Worker        "abseil-*",
364*38e8c45fSAndroid Build Coastguard Worker        "android-*",
365*38e8c45fSAndroid Build Coastguard Worker        "bugprone-*",
366*38e8c45fSAndroid Build Coastguard Worker        "-bugprone-branch-clone", // b/155034972
367*38e8c45fSAndroid Build Coastguard Worker        "cert-*",
368*38e8c45fSAndroid Build Coastguard Worker        "clang-analyzer-*",
369*38e8c45fSAndroid Build Coastguard Worker        "google-*",
370*38e8c45fSAndroid Build Coastguard Worker        "misc-*",
371*38e8c45fSAndroid Build Coastguard Worker        "performance*",
372*38e8c45fSAndroid Build Coastguard Worker        "-performance-move-const-arg", // b/273486801
373*38e8c45fSAndroid Build Coastguard Worker        "portability*",
374*38e8c45fSAndroid Build Coastguard Worker    ],
375*38e8c45fSAndroid Build Coastguard Worker}
376*38e8c45fSAndroid Build Coastguard Worker
377*38e8c45fSAndroid Build Coastguard Workercc_library_headers {
378*38e8c45fSAndroid Build Coastguard Worker    name: "trusty_mock_headers",
379*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
380*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
381*38e8c45fSAndroid Build Coastguard Worker
382*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: [
383*38e8c45fSAndroid Build Coastguard Worker        "trusty/include",
384*38e8c45fSAndroid Build Coastguard Worker        "trusty/include_mock",
385*38e8c45fSAndroid Build Coastguard Worker    ],
386*38e8c45fSAndroid Build Coastguard Worker
387*38e8c45fSAndroid Build Coastguard Worker    visibility: [
388*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
389*38e8c45fSAndroid Build Coastguard Worker    ],
390*38e8c45fSAndroid Build Coastguard Worker}
391*38e8c45fSAndroid Build Coastguard Worker
392*38e8c45fSAndroid Build Coastguard Workercc_defaults {
393*38e8c45fSAndroid Build Coastguard Worker    name: "trusty_mock_defaults",
394*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
395*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
396*38e8c45fSAndroid Build Coastguard Worker
397*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
398*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
399*38e8c45fSAndroid Build Coastguard Worker        "liblog_stub",
400*38e8c45fSAndroid Build Coastguard Worker        "trusty_mock_headers",
401*38e8c45fSAndroid Build Coastguard Worker    ],
402*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
403*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers_base",
404*38e8c45fSAndroid Build Coastguard Worker        "liblog_stub",
405*38e8c45fSAndroid Build Coastguard Worker        "trusty_mock_headers",
406*38e8c45fSAndroid Build Coastguard Worker    ],
407*38e8c45fSAndroid Build Coastguard Worker
408*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
409*38e8c45fSAndroid Build Coastguard Worker        "libutils_binder_sdk",
410*38e8c45fSAndroid Build Coastguard Worker    ],
411*38e8c45fSAndroid Build Coastguard Worker
412*38e8c45fSAndroid Build Coastguard Worker    cflags: [
413*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_RPC_SINGLE_THREADED",
414*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_ENABLE_LIBLOG_ASSERT",
415*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_NATIVE_HANDLE",
416*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_BLOB",
417*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_NO_LIBBASE",
418*38e8c45fSAndroid Build Coastguard Worker        // TODO: switch to "vendor: true" rather than copying this
419*38e8c45fSAndroid Build Coastguard Worker        // Trusty libbinder uses vendor stability for its binders
420*38e8c45fSAndroid Build Coastguard Worker        "-D__ANDROID_VENDOR__",
421*38e8c45fSAndroid Build Coastguard Worker        "-D__ANDROID_VNDK__",
422*38e8c45fSAndroid Build Coastguard Worker        "-U__ANDROID__",
423*38e8c45fSAndroid Build Coastguard Worker        "-D__TRUSTY__",
424*38e8c45fSAndroid Build Coastguard Worker        "-DTRUSTY_USERSPACE",
425*38e8c45fSAndroid Build Coastguard Worker        // Flags from the Trusty build system
426*38e8c45fSAndroid Build Coastguard Worker        "-Werror",
427*38e8c45fSAndroid Build Coastguard Worker        "-Wsign-compare",
428*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unused-function",
429*38e8c45fSAndroid Build Coastguard Worker        "-Wno-unused-label",
430*38e8c45fSAndroid Build Coastguard Worker        "-fno-common",
431*38e8c45fSAndroid Build Coastguard Worker        "-fno-omit-frame-pointer",
432*38e8c45fSAndroid Build Coastguard Worker        "-fno-threadsafe-statics",
433*38e8c45fSAndroid Build Coastguard Worker    ],
434*38e8c45fSAndroid Build Coastguard Worker    rtti: false,
435*38e8c45fSAndroid Build Coastguard Worker
436*38e8c45fSAndroid Build Coastguard Worker    visibility: [
437*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
438*38e8c45fSAndroid Build Coastguard Worker    ],
439*38e8c45fSAndroid Build Coastguard Worker}
440*38e8c45fSAndroid Build Coastguard Worker
441*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
442*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_on_trusty_mock",
443*38e8c45fSAndroid Build Coastguard Worker    defaults: [
444*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
445*38e8c45fSAndroid Build Coastguard Worker        "trusty_mock_defaults",
446*38e8c45fSAndroid Build Coastguard Worker    ],
447*38e8c45fSAndroid Build Coastguard Worker
448*38e8c45fSAndroid Build Coastguard Worker    srcs: [
449*38e8c45fSAndroid Build Coastguard Worker        // Trusty-specific files
450*38e8c45fSAndroid Build Coastguard Worker        "trusty/OS.cpp",
451*38e8c45fSAndroid Build Coastguard Worker        "trusty/RpcServerTrusty.cpp",
452*38e8c45fSAndroid Build Coastguard Worker        "trusty/RpcTransportTipcTrusty.cpp",
453*38e8c45fSAndroid Build Coastguard Worker        "trusty/TrustyStatus.cpp",
454*38e8c45fSAndroid Build Coastguard Worker        "trusty/socket.cpp",
455*38e8c45fSAndroid Build Coastguard Worker    ],
456*38e8c45fSAndroid Build Coastguard Worker}
457*38e8c45fSAndroid Build Coastguard Worker
458*38e8c45fSAndroid Build Coastguard Workersoong_config_module_type {
459*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_remove_cache_static_list_config",
460*38e8c45fSAndroid Build Coastguard Worker    module_type: "cc_defaults",
461*38e8c45fSAndroid Build Coastguard Worker    config_namespace: "libbinder",
462*38e8c45fSAndroid Build Coastguard Worker    bool_variables: ["release_libbinder_remove_cache_static_list"],
463*38e8c45fSAndroid Build Coastguard Worker    properties: [
464*38e8c45fSAndroid Build Coastguard Worker        "cflags",
465*38e8c45fSAndroid Build Coastguard Worker    ],
466*38e8c45fSAndroid Build Coastguard Worker}
467*38e8c45fSAndroid Build Coastguard Worker
468*38e8c45fSAndroid Build Coastguard Workerlibbinder_remove_cache_static_list_config {
469*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_remove_cache_static_list_flag",
470*38e8c45fSAndroid Build Coastguard Worker    soong_config_variables: {
471*38e8c45fSAndroid Build Coastguard Worker        release_libbinder_remove_cache_static_list: {
472*38e8c45fSAndroid Build Coastguard Worker            cflags: ["-DLIBBINDER_REMOVE_CACHE_STATIC_LIST"],
473*38e8c45fSAndroid Build Coastguard Worker            conditions_default: {
474*38e8c45fSAndroid Build Coastguard Worker                cflags: ["-DNO_LIBBINDER_REMOVE_CACHE_STATIC_LIST"],
475*38e8c45fSAndroid Build Coastguard Worker            },
476*38e8c45fSAndroid Build Coastguard Worker        },
477*38e8c45fSAndroid Build Coastguard Worker    },
478*38e8c45fSAndroid Build Coastguard Worker}
479*38e8c45fSAndroid Build Coastguard Worker
480*38e8c45fSAndroid Build Coastguard Workersoong_config_module_type {
481*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_client_cache_config",
482*38e8c45fSAndroid Build Coastguard Worker    module_type: "cc_defaults",
483*38e8c45fSAndroid Build Coastguard Worker    config_namespace: "libbinder",
484*38e8c45fSAndroid Build Coastguard Worker    bool_variables: ["release_libbinder_client_cache"],
485*38e8c45fSAndroid Build Coastguard Worker    properties: [
486*38e8c45fSAndroid Build Coastguard Worker        "cflags",
487*38e8c45fSAndroid Build Coastguard Worker    ],
488*38e8c45fSAndroid Build Coastguard Worker}
489*38e8c45fSAndroid Build Coastguard Worker
490*38e8c45fSAndroid Build Coastguard Workerlibbinder_client_cache_config {
491*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_client_cache_flag",
492*38e8c45fSAndroid Build Coastguard Worker    soong_config_variables: {
493*38e8c45fSAndroid Build Coastguard Worker        release_libbinder_client_cache: {
494*38e8c45fSAndroid Build Coastguard Worker            cflags: ["-DLIBBINDER_CLIENT_CACHE"],
495*38e8c45fSAndroid Build Coastguard Worker            conditions_default: {
496*38e8c45fSAndroid Build Coastguard Worker                cflags: ["-DNO_LIBBINDER_CLIENT_CACHE"],
497*38e8c45fSAndroid Build Coastguard Worker            },
498*38e8c45fSAndroid Build Coastguard Worker        },
499*38e8c45fSAndroid Build Coastguard Worker    },
500*38e8c45fSAndroid Build Coastguard Worker}
501*38e8c45fSAndroid Build Coastguard Worker
502*38e8c45fSAndroid Build Coastguard Workersoong_config_module_type {
503*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_addservice_cache_config",
504*38e8c45fSAndroid Build Coastguard Worker    module_type: "cc_defaults",
505*38e8c45fSAndroid Build Coastguard Worker    config_namespace: "libbinder",
506*38e8c45fSAndroid Build Coastguard Worker    bool_variables: ["release_libbinder_addservice_cache"],
507*38e8c45fSAndroid Build Coastguard Worker    properties: [
508*38e8c45fSAndroid Build Coastguard Worker        "cflags",
509*38e8c45fSAndroid Build Coastguard Worker    ],
510*38e8c45fSAndroid Build Coastguard Worker}
511*38e8c45fSAndroid Build Coastguard Worker
512*38e8c45fSAndroid Build Coastguard Workerlibbinder_addservice_cache_config {
513*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_addservice_cache_flag",
514*38e8c45fSAndroid Build Coastguard Worker    soong_config_variables: {
515*38e8c45fSAndroid Build Coastguard Worker        release_libbinder_addservice_cache: {
516*38e8c45fSAndroid Build Coastguard Worker            cflags: ["-DLIBBINDER_ADDSERVICE_CACHE"],
517*38e8c45fSAndroid Build Coastguard Worker            conditions_default: {
518*38e8c45fSAndroid Build Coastguard Worker                cflags: ["-DNO_LIBBINDER_ADDSERVICE_CACHE"],
519*38e8c45fSAndroid Build Coastguard Worker            },
520*38e8c45fSAndroid Build Coastguard Worker        },
521*38e8c45fSAndroid Build Coastguard Worker    },
522*38e8c45fSAndroid Build Coastguard Worker}
523*38e8c45fSAndroid Build Coastguard Worker
524*38e8c45fSAndroid Build Coastguard Workercc_defaults {
525*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_kernel_defaults",
526*38e8c45fSAndroid Build Coastguard Worker    defaults: [
527*38e8c45fSAndroid Build Coastguard Worker        "libbinder_client_cache_flag",
528*38e8c45fSAndroid Build Coastguard Worker        "libbinder_addservice_cache_flag",
529*38e8c45fSAndroid Build Coastguard Worker        "libbinder_remove_cache_static_list_flag",
530*38e8c45fSAndroid Build Coastguard Worker    ],
531*38e8c45fSAndroid Build Coastguard Worker    srcs: [
532*38e8c45fSAndroid Build Coastguard Worker        "BufferedTextOutput.cpp",
533*38e8c45fSAndroid Build Coastguard Worker        "BackendUnifiedServiceManager.cpp",
534*38e8c45fSAndroid Build Coastguard Worker        "IPCThreadState.cpp",
535*38e8c45fSAndroid Build Coastguard Worker        "IServiceManager.cpp",
536*38e8c45fSAndroid Build Coastguard Worker        "IServiceManagerFFI.cpp",
537*38e8c45fSAndroid Build Coastguard Worker        "ProcessState.cpp",
538*38e8c45fSAndroid Build Coastguard Worker        "Static.cpp",
539*38e8c45fSAndroid Build Coastguard Worker        ":libbinder_aidl",
540*38e8c45fSAndroid Build Coastguard Worker        ":libbinder_accessor_aidl",
541*38e8c45fSAndroid Build Coastguard Worker        ":libbinder_device_interface_sources",
542*38e8c45fSAndroid Build Coastguard Worker    ],
543*38e8c45fSAndroid Build Coastguard Worker    target: {
544*38e8c45fSAndroid Build Coastguard Worker        vendor: {
545*38e8c45fSAndroid Build Coastguard Worker            exclude_srcs: [
546*38e8c45fSAndroid Build Coastguard Worker                ":libbinder_device_interface_sources",
547*38e8c45fSAndroid Build Coastguard Worker            ],
548*38e8c45fSAndroid Build Coastguard Worker        },
549*38e8c45fSAndroid Build Coastguard Worker        host: {
550*38e8c45fSAndroid Build Coastguard Worker            srcs: [
551*38e8c45fSAndroid Build Coastguard Worker                "ServiceManagerHost.cpp",
552*38e8c45fSAndroid Build Coastguard Worker            ],
553*38e8c45fSAndroid Build Coastguard Worker        },
554*38e8c45fSAndroid Build Coastguard Worker        android: {
555*38e8c45fSAndroid Build Coastguard Worker            shared_libs: [
556*38e8c45fSAndroid Build Coastguard Worker                "libapexsupport",
557*38e8c45fSAndroid Build Coastguard Worker                "libvndksupport",
558*38e8c45fSAndroid Build Coastguard Worker            ],
559*38e8c45fSAndroid Build Coastguard Worker        },
560*38e8c45fSAndroid Build Coastguard Worker        recovery: {
561*38e8c45fSAndroid Build Coastguard Worker            exclude_shared_libs: [
562*38e8c45fSAndroid Build Coastguard Worker                "libapexsupport",
563*38e8c45fSAndroid Build Coastguard Worker                "libvndksupport",
564*38e8c45fSAndroid Build Coastguard Worker            ],
565*38e8c45fSAndroid Build Coastguard Worker        },
566*38e8c45fSAndroid Build Coastguard Worker        native_bridge: {
567*38e8c45fSAndroid Build Coastguard Worker            exclude_shared_libs: [
568*38e8c45fSAndroid Build Coastguard Worker                "libapexsupport",
569*38e8c45fSAndroid Build Coastguard Worker                "libvndksupport",
570*38e8c45fSAndroid Build Coastguard Worker            ],
571*38e8c45fSAndroid Build Coastguard Worker        },
572*38e8c45fSAndroid Build Coastguard Worker    },
573*38e8c45fSAndroid Build Coastguard Worker    cflags: [
574*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_WITH_KERNEL_IPC",
575*38e8c45fSAndroid Build Coastguard Worker    ],
576*38e8c45fSAndroid Build Coastguard Worker}
577*38e8c45fSAndroid Build Coastguard Worker
578*38e8c45fSAndroid Build Coastguard Workercc_library {
579*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder",
580*38e8c45fSAndroid Build Coastguard Worker    defaults: [
581*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
582*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
583*38e8c45fSAndroid Build Coastguard Worker        "libbinder_kernel_defaults",
584*38e8c45fSAndroid Build Coastguard Worker    ],
585*38e8c45fSAndroid Build Coastguard Worker
586*38e8c45fSAndroid Build Coastguard Worker    version_script: "libbinder.map",
587*38e8c45fSAndroid Build Coastguard Worker
588*38e8c45fSAndroid Build Coastguard Worker    // for vndbinder
589*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
590*38e8c45fSAndroid Build Coastguard Worker    recovery_available: true,
591*38e8c45fSAndroid Build Coastguard Worker    double_loadable: true,
592*38e8c45fSAndroid Build Coastguard Worker    // TODO(b/153609531): remove when no longer needed.
593*38e8c45fSAndroid Build Coastguard Worker    native_bridge_supported: true,
594*38e8c45fSAndroid Build Coastguard Worker    cmake_snapshot_supported: false,
595*38e8c45fSAndroid Build Coastguard Worker
596*38e8c45fSAndroid Build Coastguard Worker    // libbinder does not offer a stable wire protocol.
597*38e8c45fSAndroid Build Coastguard Worker    // if a second copy of it is installed, then it may break after security
598*38e8c45fSAndroid Build Coastguard Worker    // or dessert updates. Instead, apex users should use libbinder_ndk.
599*38e8c45fSAndroid Build Coastguard Worker    apex_available: [
600*38e8c45fSAndroid Build Coastguard Worker        "//apex_available:platform",
601*38e8c45fSAndroid Build Coastguard Worker    ],
602*38e8c45fSAndroid Build Coastguard Worker
603*38e8c45fSAndroid Build Coastguard Worker    srcs: [
604*38e8c45fSAndroid Build Coastguard Worker        "IMemory.cpp",
605*38e8c45fSAndroid Build Coastguard Worker        "IShellCallback.cpp",
606*38e8c45fSAndroid Build Coastguard Worker        "LazyServiceRegistrar.cpp",
607*38e8c45fSAndroid Build Coastguard Worker        "MemoryBase.cpp",
608*38e8c45fSAndroid Build Coastguard Worker        "MemoryDealer.cpp",
609*38e8c45fSAndroid Build Coastguard Worker        "MemoryHeapBase.cpp",
610*38e8c45fSAndroid Build Coastguard Worker        "ParcelableHolder.cpp",
611*38e8c45fSAndroid Build Coastguard Worker        "PersistableBundle.cpp",
612*38e8c45fSAndroid Build Coastguard Worker    ],
613*38e8c45fSAndroid Build Coastguard Worker    target: {
614*38e8c45fSAndroid Build Coastguard Worker        android: {
615*38e8c45fSAndroid Build Coastguard Worker            // NOT static to keep the wire protocol unfrozen
616*38e8c45fSAndroid Build Coastguard Worker            static: {
617*38e8c45fSAndroid Build Coastguard Worker                enabled: false,
618*38e8c45fSAndroid Build Coastguard Worker            },
619*38e8c45fSAndroid Build Coastguard Worker        },
620*38e8c45fSAndroid Build Coastguard Worker        darwin: {
621*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
622*38e8c45fSAndroid Build Coastguard Worker        },
623*38e8c45fSAndroid Build Coastguard Worker        recovery: {
624*38e8c45fSAndroid Build Coastguard Worker            exclude_header_libs: [
625*38e8c45fSAndroid Build Coastguard Worker                "jni_headers",
626*38e8c45fSAndroid Build Coastguard Worker            ],
627*38e8c45fSAndroid Build Coastguard Worker        },
628*38e8c45fSAndroid Build Coastguard Worker    },
629*38e8c45fSAndroid Build Coastguard Worker
630*38e8c45fSAndroid Build Coastguard Worker    afdo: true,
631*38e8c45fSAndroid Build Coastguard Worker}
632*38e8c45fSAndroid Build Coastguard Worker
633*38e8c45fSAndroid Build Coastguard Workercc_defaults {
634*38e8c45fSAndroid Build Coastguard Worker    name: "binder_sdk_defaults",
635*38e8c45fSAndroid Build Coastguard Worker
636*38e8c45fSAndroid Build Coastguard Worker    cflags: [
637*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_ENABLE_LIBLOG_ASSERT",
638*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_NATIVE_HANDLE",
639*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_BLOB",
640*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_NO_LIBBASE",
641*38e8c45fSAndroid Build Coastguard Worker    ],
642*38e8c45fSAndroid Build Coastguard Worker
643*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
644*38e8c45fSAndroid Build Coastguard Worker        "liblog_stub",
645*38e8c45fSAndroid Build Coastguard Worker    ],
646*38e8c45fSAndroid Build Coastguard Worker}
647*38e8c45fSAndroid Build Coastguard Worker
648*38e8c45fSAndroid Build Coastguard Workercc_defaults {
649*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_sdk_defaults",
650*38e8c45fSAndroid Build Coastguard Worker
651*38e8c45fSAndroid Build Coastguard Worker    cmake_snapshot_supported: true,
652*38e8c45fSAndroid Build Coastguard Worker
653*38e8c45fSAndroid Build Coastguard Worker    defaults: [
654*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
655*38e8c45fSAndroid Build Coastguard Worker        "binder_sdk_defaults",
656*38e8c45fSAndroid Build Coastguard Worker    ],
657*38e8c45fSAndroid Build Coastguard Worker
658*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
659*38e8c45fSAndroid Build Coastguard Worker        "libutils_binder_sdk",
660*38e8c45fSAndroid Build Coastguard Worker    ],
661*38e8c45fSAndroid Build Coastguard Worker
662*38e8c45fSAndroid Build Coastguard Worker    srcs: [
663*38e8c45fSAndroid Build Coastguard Worker        "OS_non_android_linux.cpp",
664*38e8c45fSAndroid Build Coastguard Worker        "OS_unix_base.cpp",
665*38e8c45fSAndroid Build Coastguard Worker    ],
666*38e8c45fSAndroid Build Coastguard Worker
667*38e8c45fSAndroid Build Coastguard Worker    visibility: [
668*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
669*38e8c45fSAndroid Build Coastguard Worker    ],
670*38e8c45fSAndroid Build Coastguard Worker
671*38e8c45fSAndroid Build Coastguard Worker    target: {
672*38e8c45fSAndroid Build Coastguard Worker        windows: {
673*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
674*38e8c45fSAndroid Build Coastguard Worker        },
675*38e8c45fSAndroid Build Coastguard Worker    },
676*38e8c45fSAndroid Build Coastguard Worker}
677*38e8c45fSAndroid Build Coastguard Worker
678*38e8c45fSAndroid Build Coastguard Workercc_library_host_shared {
679*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_sdk",
680*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libbinder_sdk_defaults"],
681*38e8c45fSAndroid Build Coastguard Worker}
682*38e8c45fSAndroid Build Coastguard Worker
683*38e8c45fSAndroid Build Coastguard Workercc_library_host_shared {
684*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_sdk_single_threaded",
685*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libbinder_sdk_defaults"],
686*38e8c45fSAndroid Build Coastguard Worker    cflags: [
687*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_RPC_SINGLE_THREADED",
688*38e8c45fSAndroid Build Coastguard Worker    ],
689*38e8c45fSAndroid Build Coastguard Worker}
690*38e8c45fSAndroid Build Coastguard Worker
691*38e8c45fSAndroid Build Coastguard Workercc_library {
692*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_no_kernel",
693*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
694*38e8c45fSAndroid Build Coastguard Worker    defaults: [
695*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
696*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
697*38e8c45fSAndroid Build Coastguard Worker    ],
698*38e8c45fSAndroid Build Coastguard Worker    visibility: [
699*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
700*38e8c45fSAndroid Build Coastguard Worker    ],
701*38e8c45fSAndroid Build Coastguard Worker}
702*38e8c45fSAndroid Build Coastguard Worker
703*38e8c45fSAndroid Build Coastguard Workercc_library {
704*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_no_blob",
705*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
706*38e8c45fSAndroid Build Coastguard Worker    defaults: [
707*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
708*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
709*38e8c45fSAndroid Build Coastguard Worker        "libbinder_kernel_defaults",
710*38e8c45fSAndroid Build Coastguard Worker    ],
711*38e8c45fSAndroid Build Coastguard Worker    cflags: [
712*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_BLOB",
713*38e8c45fSAndroid Build Coastguard Worker    ],
714*38e8c45fSAndroid Build Coastguard Worker    visibility: [
715*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
716*38e8c45fSAndroid Build Coastguard Worker    ],
717*38e8c45fSAndroid Build Coastguard Worker}
718*38e8c45fSAndroid Build Coastguard Worker
719*38e8c45fSAndroid Build Coastguard Workercc_library {
720*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_no_native_handle",
721*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
722*38e8c45fSAndroid Build Coastguard Worker    defaults: [
723*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
724*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
725*38e8c45fSAndroid Build Coastguard Worker        "libbinder_kernel_defaults",
726*38e8c45fSAndroid Build Coastguard Worker    ],
727*38e8c45fSAndroid Build Coastguard Worker    cflags: [
728*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_DISABLE_NATIVE_HANDLE",
729*38e8c45fSAndroid Build Coastguard Worker    ],
730*38e8c45fSAndroid Build Coastguard Worker    visibility: [
731*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
732*38e8c45fSAndroid Build Coastguard Worker    ],
733*38e8c45fSAndroid Build Coastguard Worker}
734*38e8c45fSAndroid Build Coastguard Worker
735*38e8c45fSAndroid Build Coastguard Workercc_library {
736*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_single_threaded",
737*38e8c45fSAndroid Build Coastguard Worker    defaults: [
738*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
739*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
740*38e8c45fSAndroid Build Coastguard Worker        "libbinder_kernel_defaults",
741*38e8c45fSAndroid Build Coastguard Worker    ],
742*38e8c45fSAndroid Build Coastguard Worker    cflags: [
743*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_RPC_SINGLE_THREADED",
744*38e8c45fSAndroid Build Coastguard Worker    ],
745*38e8c45fSAndroid Build Coastguard Worker    visibility: [
746*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
747*38e8c45fSAndroid Build Coastguard Worker    ],
748*38e8c45fSAndroid Build Coastguard Worker}
749*38e8c45fSAndroid Build Coastguard Worker
750*38e8c45fSAndroid Build Coastguard Workercc_library {
751*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_single_threaded_no_kernel",
752*38e8c45fSAndroid Build Coastguard Worker    defaults: [
753*38e8c45fSAndroid Build Coastguard Worker        "libbinder_common_defaults",
754*38e8c45fSAndroid Build Coastguard Worker        "libbinder_android_defaults",
755*38e8c45fSAndroid Build Coastguard Worker    ],
756*38e8c45fSAndroid Build Coastguard Worker    cflags: [
757*38e8c45fSAndroid Build Coastguard Worker        "-DBINDER_RPC_SINGLE_THREADED",
758*38e8c45fSAndroid Build Coastguard Worker    ],
759*38e8c45fSAndroid Build Coastguard Worker    visibility: [
760*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
761*38e8c45fSAndroid Build Coastguard Worker    ],
762*38e8c45fSAndroid Build Coastguard Worker}
763*38e8c45fSAndroid Build Coastguard Worker
764*38e8c45fSAndroid Build Coastguard Workercc_defaults {
765*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_tls_shared_deps",
766*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
767*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
768*38e8c45fSAndroid Build Coastguard Worker        "libcrypto",
769*38e8c45fSAndroid Build Coastguard Worker        "liblog",
770*38e8c45fSAndroid Build Coastguard Worker        "libssl",
771*38e8c45fSAndroid Build Coastguard Worker        "libutils",
772*38e8c45fSAndroid Build Coastguard Worker    ],
773*38e8c45fSAndroid Build Coastguard Worker}
774*38e8c45fSAndroid Build Coastguard Worker
775*38e8c45fSAndroid Build Coastguard Workercc_defaults {
776*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_tls_defaults",
777*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libbinder_tls_shared_deps"],
778*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
779*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
780*38e8c45fSAndroid Build Coastguard Worker    cmake_snapshot_supported: true,
781*38e8c45fSAndroid Build Coastguard Worker
782*38e8c45fSAndroid Build Coastguard Worker    header_libs: [
783*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers",
784*38e8c45fSAndroid Build Coastguard Worker    ],
785*38e8c45fSAndroid Build Coastguard Worker    export_header_lib_headers: [
786*38e8c45fSAndroid Build Coastguard Worker        "libbinder_headers",
787*38e8c45fSAndroid Build Coastguard Worker    ],
788*38e8c45fSAndroid Build Coastguard Worker    export_shared_lib_headers: [
789*38e8c45fSAndroid Build Coastguard Worker        "libssl",
790*38e8c45fSAndroid Build Coastguard Worker    ],
791*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_tls"],
792*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
793*38e8c45fSAndroid Build Coastguard Worker        "libbase",
794*38e8c45fSAndroid Build Coastguard Worker    ],
795*38e8c45fSAndroid Build Coastguard Worker    srcs: [
796*38e8c45fSAndroid Build Coastguard Worker        "RpcTransportTls.cpp",
797*38e8c45fSAndroid Build Coastguard Worker        "RpcTlsUtils.cpp",
798*38e8c45fSAndroid Build Coastguard Worker    ],
799*38e8c45fSAndroid Build Coastguard Worker}
800*38e8c45fSAndroid Build Coastguard Worker
801*38e8c45fSAndroid Build Coastguard Workercc_library_shared {
802*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_tls",
803*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libbinder_tls_defaults"],
804*38e8c45fSAndroid Build Coastguard Worker}
805*38e8c45fSAndroid Build Coastguard Worker
806*38e8c45fSAndroid Build Coastguard Workercc_library {
807*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_trusty",
808*38e8c45fSAndroid Build Coastguard Worker    vendor: true,
809*38e8c45fSAndroid Build Coastguard Worker    srcs: [
810*38e8c45fSAndroid Build Coastguard Worker        "RpcTransportTipcAndroid.cpp",
811*38e8c45fSAndroid Build Coastguard Worker        "RpcTrusty.cpp",
812*38e8c45fSAndroid Build Coastguard Worker    ],
813*38e8c45fSAndroid Build Coastguard Worker
814*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
815*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
816*38e8c45fSAndroid Build Coastguard Worker        "liblog",
817*38e8c45fSAndroid Build Coastguard Worker        "libtrusty",
818*38e8c45fSAndroid Build Coastguard Worker        "libutils",
819*38e8c45fSAndroid Build Coastguard Worker    ],
820*38e8c45fSAndroid Build Coastguard Worker    static_libs: [
821*38e8c45fSAndroid Build Coastguard Worker        "libbase",
822*38e8c45fSAndroid Build Coastguard Worker    ],
823*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_trusty"],
824*38e8c45fSAndroid Build Coastguard Worker
825*38e8c45fSAndroid Build Coastguard Worker    // Most of Android doesn't need this library and shouldn't use it,
826*38e8c45fSAndroid Build Coastguard Worker    // so we restrict its visibility to the Trusty-specific packages.
827*38e8c45fSAndroid Build Coastguard Worker    visibility: [
828*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
829*38e8c45fSAndroid Build Coastguard Worker        "//system/core/trusty:__subpackages__",
830*38e8c45fSAndroid Build Coastguard Worker        "//vendor:__subpackages__",
831*38e8c45fSAndroid Build Coastguard Worker    ],
832*38e8c45fSAndroid Build Coastguard Worker}
833*38e8c45fSAndroid Build Coastguard Worker
834*38e8c45fSAndroid Build Coastguard Worker// For testing
835*38e8c45fSAndroid Build Coastguard Workercc_library_static {
836*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_tls_static",
837*38e8c45fSAndroid Build Coastguard Worker    defaults: ["libbinder_tls_defaults"],
838*38e8c45fSAndroid Build Coastguard Worker    visibility: [
839*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
840*38e8c45fSAndroid Build Coastguard Worker    ],
841*38e8c45fSAndroid Build Coastguard Worker}
842*38e8c45fSAndroid Build Coastguard Worker
843*38e8c45fSAndroid Build Coastguard Worker// AIDL interface between libbinder and framework.jar
844*38e8c45fSAndroid Build Coastguard Workerfilegroup {
845*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_aidl",
846*38e8c45fSAndroid Build Coastguard Worker    srcs: [
847*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/ConnectionInfo.aidl",
848*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/IClientCallback.aidl",
849*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/IServiceCallback.aidl",
850*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/IServiceManager.aidl",
851*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/Service.aidl",
852*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/ServiceWithMetadata.aidl",
853*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/ServiceDebugInfo.aidl",
854*38e8c45fSAndroid Build Coastguard Worker    ],
855*38e8c45fSAndroid Build Coastguard Worker    path: "aidl",
856*38e8c45fSAndroid Build Coastguard Worker}
857*38e8c45fSAndroid Build Coastguard Worker
858*38e8c45fSAndroid Build Coastguard Workerfilegroup {
859*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_accessor_aidl",
860*38e8c45fSAndroid Build Coastguard Worker    srcs: [
861*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/os/IAccessor.aidl",
862*38e8c45fSAndroid Build Coastguard Worker    ],
863*38e8c45fSAndroid Build Coastguard Worker    path: "aidl",
864*38e8c45fSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
865*38e8c45fSAndroid Build Coastguard Worker}
866*38e8c45fSAndroid Build Coastguard Worker
867*38e8c45fSAndroid Build Coastguard Workeraidl_interface {
868*38e8c45fSAndroid Build Coastguard Worker    name: "packagemanager_aidl",
869*38e8c45fSAndroid Build Coastguard Worker    unstable: true,
870*38e8c45fSAndroid Build Coastguard Worker    local_include_dir: "aidl",
871*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
872*38e8c45fSAndroid Build Coastguard Worker    srcs: [
873*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/content/pm/IPackageManagerNative.aidl",
874*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/content/pm/IStagedApexObserver.aidl",
875*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/content/pm/ApexStagedEvent.aidl",
876*38e8c45fSAndroid Build Coastguard Worker        "aidl/android/content/pm/StagedApexInfo.aidl",
877*38e8c45fSAndroid Build Coastguard Worker    ],
878*38e8c45fSAndroid Build Coastguard Worker    backend: {
879*38e8c45fSAndroid Build Coastguard Worker        rust: {
880*38e8c45fSAndroid Build Coastguard Worker            apex_available: [
881*38e8c45fSAndroid Build Coastguard Worker                "//apex_available:platform",
882*38e8c45fSAndroid Build Coastguard Worker                "com.android.virt",
883*38e8c45fSAndroid Build Coastguard Worker            ],
884*38e8c45fSAndroid Build Coastguard Worker            enabled: true,
885*38e8c45fSAndroid Build Coastguard Worker        },
886*38e8c45fSAndroid Build Coastguard Worker    },
887*38e8c45fSAndroid Build Coastguard Worker}
888*38e8c45fSAndroid Build Coastguard Worker
889*38e8c45fSAndroid Build Coastguard Workeraidl_interface {
890*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_aidl_test_stub",
891*38e8c45fSAndroid Build Coastguard Worker    unstable: true,
892*38e8c45fSAndroid Build Coastguard Worker    local_include_dir: "aidl",
893*38e8c45fSAndroid Build Coastguard Worker    srcs: [":libbinder_aidl"],
894*38e8c45fSAndroid Build Coastguard Worker    vendor_available: true,
895*38e8c45fSAndroid Build Coastguard Worker    backend: {
896*38e8c45fSAndroid Build Coastguard Worker        java: {
897*38e8c45fSAndroid Build Coastguard Worker            enabled: false,
898*38e8c45fSAndroid Build Coastguard Worker        },
899*38e8c45fSAndroid Build Coastguard Worker    },
900*38e8c45fSAndroid Build Coastguard Worker    visibility: [
901*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
902*38e8c45fSAndroid Build Coastguard Worker        "//system/tools/aidl:__subpackages__",
903*38e8c45fSAndroid Build Coastguard Worker    ],
904*38e8c45fSAndroid Build Coastguard Worker}
905*38e8c45fSAndroid Build Coastguard Worker
906*38e8c45fSAndroid Build Coastguard Worker// TODO(b/184872979): remove once the Rust API is created.
907*38e8c45fSAndroid Build Coastguard Workercc_library {
908*38e8c45fSAndroid Build Coastguard Worker    name: "libbinder_rpc_unstable",
909*38e8c45fSAndroid Build Coastguard Worker    srcs: ["libbinder_rpc_unstable.cpp"],
910*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
911*38e8c45fSAndroid Build Coastguard Worker        "libbase",
912*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
913*38e8c45fSAndroid Build Coastguard Worker        "libbinder_ndk",
914*38e8c45fSAndroid Build Coastguard Worker        "liblog",
915*38e8c45fSAndroid Build Coastguard Worker        "libutils",
916*38e8c45fSAndroid Build Coastguard Worker    ],
917*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_rpc_unstable"],
918*38e8c45fSAndroid Build Coastguard Worker
919*38e8c45fSAndroid Build Coastguard Worker    // enumerate stable entry points, for apex use
920*38e8c45fSAndroid Build Coastguard Worker    stubs: {
921*38e8c45fSAndroid Build Coastguard Worker        symbol_file: "libbinder_rpc_unstable.map.txt",
922*38e8c45fSAndroid Build Coastguard Worker    },
923*38e8c45fSAndroid Build Coastguard Worker
924*38e8c45fSAndroid Build Coastguard Worker    header_abi_checker: {
925*38e8c45fSAndroid Build Coastguard Worker        enabled: false,
926*38e8c45fSAndroid Build Coastguard Worker    },
927*38e8c45fSAndroid Build Coastguard Worker
928*38e8c45fSAndroid Build Coastguard Worker    // This library is intentionally limited to these targets, and it will be removed later.
929*38e8c45fSAndroid Build Coastguard Worker    // Do not expand the visibility.
930*38e8c45fSAndroid Build Coastguard Worker    visibility: [
931*38e8c45fSAndroid Build Coastguard Worker        ":__subpackages__",
932*38e8c45fSAndroid Build Coastguard Worker        "//packages/modules/Virtualization:__subpackages__",
933*38e8c45fSAndroid Build Coastguard Worker        "//device/google/cuttlefish/shared/minidroid:__subpackages__",
934*38e8c45fSAndroid Build Coastguard Worker        "//visibility:any_system_partition",
935*38e8c45fSAndroid Build Coastguard Worker    ],
936*38e8c45fSAndroid Build Coastguard Worker}
937*38e8c45fSAndroid Build Coastguard Worker
938*38e8c45fSAndroid Build Coastguard Worker// libbinder historically contained additional interfaces that provided specific
939*38e8c45fSAndroid Build Coastguard Worker// functionality in the platform but have nothing to do with binder itself. These
940*38e8c45fSAndroid Build Coastguard Worker// are moved out of libbinder in order to avoid the overhead of their vtables.
941*38e8c45fSAndroid Build Coastguard Worker// If you are working on or own one of these interfaces, the responsible things
942*38e8c45fSAndroid Build Coastguard Worker// to would be:
943*38e8c45fSAndroid Build Coastguard Worker// - give them a new home
944*38e8c45fSAndroid Build Coastguard Worker// - convert them to AIDL instead of having manually written parceling code
945*38e8c45fSAndroid Build Coastguard Worker
946*38e8c45fSAndroid Build Coastguard Workercc_library {
947*38e8c45fSAndroid Build Coastguard Worker    name: "libbatterystats_aidl",
948*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
949*38e8c45fSAndroid Build Coastguard Worker    srcs: [
950*38e8c45fSAndroid Build Coastguard Worker        "IBatteryStats.cpp",
951*38e8c45fSAndroid Build Coastguard Worker    ],
952*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_batterystats"],
953*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
954*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
955*38e8c45fSAndroid Build Coastguard Worker        "libutils",
956*38e8c45fSAndroid Build Coastguard Worker    ],
957*38e8c45fSAndroid Build Coastguard Worker}
958*38e8c45fSAndroid Build Coastguard Worker
959*38e8c45fSAndroid Build Coastguard Workercc_library {
960*38e8c45fSAndroid Build Coastguard Worker    name: "libprocessinfoservice_aidl",
961*38e8c45fSAndroid Build Coastguard Worker    host_supported: true,
962*38e8c45fSAndroid Build Coastguard Worker    srcs: [
963*38e8c45fSAndroid Build Coastguard Worker        "IProcessInfoService.cpp",
964*38e8c45fSAndroid Build Coastguard Worker        "ProcessInfoService.cpp",
965*38e8c45fSAndroid Build Coastguard Worker    ],
966*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_processinfo"],
967*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
968*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
969*38e8c45fSAndroid Build Coastguard Worker        "libutils",
970*38e8c45fSAndroid Build Coastguard Worker        "liblog",
971*38e8c45fSAndroid Build Coastguard Worker    ],
972*38e8c45fSAndroid Build Coastguard Worker}
973*38e8c45fSAndroid Build Coastguard Worker
974*38e8c45fSAndroid Build Coastguard Workercc_library {
975*38e8c45fSAndroid Build Coastguard Worker    name: "libactivitymanager_aidl",
976*38e8c45fSAndroid Build Coastguard Worker    srcs: [
977*38e8c45fSAndroid Build Coastguard Worker        "ActivityManager.cpp",
978*38e8c45fSAndroid Build Coastguard Worker        "IActivityManager.cpp",
979*38e8c45fSAndroid Build Coastguard Worker        "IUidObserver.cpp",
980*38e8c45fSAndroid Build Coastguard Worker        ":activity_manager_procstate_aidl",
981*38e8c45fSAndroid Build Coastguard Worker    ],
982*38e8c45fSAndroid Build Coastguard Worker    export_include_dirs: ["include_activitymanager"],
983*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
984*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
985*38e8c45fSAndroid Build Coastguard Worker        "libutils",
986*38e8c45fSAndroid Build Coastguard Worker        "liblog",
987*38e8c45fSAndroid Build Coastguard Worker    ],
988*38e8c45fSAndroid Build Coastguard Worker    aidl: {
989*38e8c45fSAndroid Build Coastguard Worker        export_aidl_headers: true,
990*38e8c45fSAndroid Build Coastguard Worker    },
991*38e8c45fSAndroid Build Coastguard Worker}
992*38e8c45fSAndroid Build Coastguard Worker
993*38e8c45fSAndroid Build Coastguard Workercc_binary {
994*38e8c45fSAndroid Build Coastguard Worker    name: "servicedispatcher",
995*38e8c45fSAndroid Build Coastguard Worker    host_supported: false,
996*38e8c45fSAndroid Build Coastguard Worker    srcs: [
997*38e8c45fSAndroid Build Coastguard Worker        "servicedispatcher.cpp",
998*38e8c45fSAndroid Build Coastguard Worker    ],
999*38e8c45fSAndroid Build Coastguard Worker    shared_libs: [
1000*38e8c45fSAndroid Build Coastguard Worker        "libbase",
1001*38e8c45fSAndroid Build Coastguard Worker        "libbinder",
1002*38e8c45fSAndroid Build Coastguard Worker        "liblog",
1003*38e8c45fSAndroid Build Coastguard Worker        "libutils",
1004*38e8c45fSAndroid Build Coastguard Worker        "android.debug_aidl-cpp",
1005*38e8c45fSAndroid Build Coastguard Worker    ],
1006*38e8c45fSAndroid Build Coastguard Worker}
1007