xref: /aosp_15_r20/system/libhwbinder/Android.bp (revision 77b80299c8bdfeca3ae6d0ce27ae1ad3db289be3)
1*77b80299SAndroid Build Coastguard Worker// Copyright (C) 2009 The Android Open Source Project
2*77b80299SAndroid Build Coastguard Worker//
3*77b80299SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*77b80299SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*77b80299SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*77b80299SAndroid Build Coastguard Worker//
7*77b80299SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*77b80299SAndroid Build Coastguard Worker//
9*77b80299SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*77b80299SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*77b80299SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*77b80299SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*77b80299SAndroid Build Coastguard Worker// limitations under the License.
14*77b80299SAndroid Build Coastguard Worker
15*77b80299SAndroid Build Coastguard Workerpackage {
16*77b80299SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_libhwbinder_license"],
17*77b80299SAndroid Build Coastguard Worker}
18*77b80299SAndroid Build Coastguard Worker
19*77b80299SAndroid Build Coastguard Worker// Added automatically by a large-scale-change
20*77b80299SAndroid Build Coastguard Worker// http://go/android-license-faq
21*77b80299SAndroid Build Coastguard Workerlicense {
22*77b80299SAndroid Build Coastguard Worker    name: "system_libhwbinder_license",
23*77b80299SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
24*77b80299SAndroid Build Coastguard Worker    license_kinds: [
25*77b80299SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
26*77b80299SAndroid Build Coastguard Worker    ],
27*77b80299SAndroid Build Coastguard Worker    license_text: [
28*77b80299SAndroid Build Coastguard Worker        "NOTICE",
29*77b80299SAndroid Build Coastguard Worker    ],
30*77b80299SAndroid Build Coastguard Worker}
31*77b80299SAndroid Build Coastguard Worker
32*77b80299SAndroid Build Coastguard Workercc_library_headers {
33*77b80299SAndroid Build Coastguard Worker    name: "libhwbinder_headers",
34*77b80299SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
35*77b80299SAndroid Build Coastguard Worker    host_supported: true,
36*77b80299SAndroid Build Coastguard Worker    recovery_available: true,
37*77b80299SAndroid Build Coastguard Worker    vendor_available: true,
38*77b80299SAndroid Build Coastguard Worker    product_available: true,
39*77b80299SAndroid Build Coastguard Worker    // TODO(b/153609531): remove when no longer needed.
40*77b80299SAndroid Build Coastguard Worker    native_bridge_supported: true,
41*77b80299SAndroid Build Coastguard Worker    apex_available: [
42*77b80299SAndroid Build Coastguard Worker        "//apex_available:platform",
43*77b80299SAndroid Build Coastguard Worker        "//apex_available:anyapex",
44*77b80299SAndroid Build Coastguard Worker    ],
45*77b80299SAndroid Build Coastguard Worker    min_sdk_version: "29",
46*77b80299SAndroid Build Coastguard Worker}
47*77b80299SAndroid Build Coastguard Worker
48*77b80299SAndroid Build Coastguard Workercc_defaults {
49*77b80299SAndroid Build Coastguard Worker    name: "libhwbinder_defaults",
50*77b80299SAndroid Build Coastguard Worker
51*77b80299SAndroid Build Coastguard Worker    header_libs: ["libhwbinder_headers"],
52*77b80299SAndroid Build Coastguard Worker    export_header_lib_headers: ["libhwbinder_headers"],
53*77b80299SAndroid Build Coastguard Worker
54*77b80299SAndroid Build Coastguard Worker    sanitize: {
55*77b80299SAndroid Build Coastguard Worker        misc_undefined: ["integer"],
56*77b80299SAndroid Build Coastguard Worker    },
57*77b80299SAndroid Build Coastguard Worker    srcs: [
58*77b80299SAndroid Build Coastguard Worker        "Binder.cpp",
59*77b80299SAndroid Build Coastguard Worker        "BpHwBinder.cpp",
60*77b80299SAndroid Build Coastguard Worker        "BufferedTextOutput.cpp",
61*77b80299SAndroid Build Coastguard Worker        "Debug.cpp",
62*77b80299SAndroid Build Coastguard Worker        "IInterface.cpp",
63*77b80299SAndroid Build Coastguard Worker        "IPCThreadState.cpp",
64*77b80299SAndroid Build Coastguard Worker        "Parcel.cpp",
65*77b80299SAndroid Build Coastguard Worker        "ProcessState.cpp",
66*77b80299SAndroid Build Coastguard Worker        "Static.cpp",
67*77b80299SAndroid Build Coastguard Worker        "TextOutput.cpp",
68*77b80299SAndroid Build Coastguard Worker        "Utils.cpp",
69*77b80299SAndroid Build Coastguard Worker    ],
70*77b80299SAndroid Build Coastguard Worker
71*77b80299SAndroid Build Coastguard Worker    product_variables: {
72*77b80299SAndroid Build Coastguard Worker        binder32bit: {
73*77b80299SAndroid Build Coastguard Worker            cflags: ["-DBINDER_IPC_32BIT=1"],
74*77b80299SAndroid Build Coastguard Worker        },
75*77b80299SAndroid Build Coastguard Worker    },
76*77b80299SAndroid Build Coastguard Worker
77*77b80299SAndroid Build Coastguard Worker    cflags: [
78*77b80299SAndroid Build Coastguard Worker        "-Wall",
79*77b80299SAndroid Build Coastguard Worker        "-Werror",
80*77b80299SAndroid Build Coastguard Worker    ],
81*77b80299SAndroid Build Coastguard Worker}
82*77b80299SAndroid Build Coastguard Worker
83*77b80299SAndroid Build Coastguard Workercc_defaults {
84*77b80299SAndroid Build Coastguard Worker    name: "libhwbinder-impl-shared-libs",
85*77b80299SAndroid Build Coastguard Worker    shared_libs: [
86*77b80299SAndroid Build Coastguard Worker        "libbase",
87*77b80299SAndroid Build Coastguard Worker        "liblog",
88*77b80299SAndroid Build Coastguard Worker        "libcutils",
89*77b80299SAndroid Build Coastguard Worker        "libutils",
90*77b80299SAndroid Build Coastguard Worker    ],
91*77b80299SAndroid Build Coastguard Worker    export_shared_lib_headers: [
92*77b80299SAndroid Build Coastguard Worker        "libbase",
93*77b80299SAndroid Build Coastguard Worker        "libutils",
94*77b80299SAndroid Build Coastguard Worker    ],
95*77b80299SAndroid Build Coastguard Worker}
96*77b80299SAndroid Build Coastguard Worker
97*77b80299SAndroid Build Coastguard Worker// WARNING: this should no longer be used
98*77b80299SAndroid Build Coastguard Worker// This is automatically removed by bpfix. Once there are no makefiles, fixes can be automatically applied, and this can be removed.
99*77b80299SAndroid Build Coastguard Workercc_library {
100*77b80299SAndroid Build Coastguard Worker    name: "libhwbinder",
101*77b80299SAndroid Build Coastguard Worker    vendor_available: true,
102*77b80299SAndroid Build Coastguard Worker
103*77b80299SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
104*77b80299SAndroid Build Coastguard Worker
105*77b80299SAndroid Build Coastguard Worker    visibility: [
106*77b80299SAndroid Build Coastguard Worker        ":__subpackages__",
107*77b80299SAndroid Build Coastguard Worker        "//vendor:__subpackages__",
108*77b80299SAndroid Build Coastguard Worker        "//visibility:any_system_partition",
109*77b80299SAndroid Build Coastguard Worker    ],
110*77b80299SAndroid Build Coastguard Worker}
111*77b80299SAndroid Build Coastguard Worker
112*77b80299SAndroid Build Coastguard Worker// Combined into libhidlbase for efficiency.
113*77b80299SAndroid Build Coastguard Worker// Used as shared library to provide headers for libhidltransport-impl-internal.
114*77b80299SAndroid Build Coastguard Workercc_library_static {
115*77b80299SAndroid Build Coastguard Worker    name: "libhwbinder-impl-internal",
116*77b80299SAndroid Build Coastguard Worker    include_dirs: [
117*77b80299SAndroid Build Coastguard Worker        // TODO(b/31559095): get headers from bionic on host
118*77b80299SAndroid Build Coastguard Worker        "bionic/libc/kernel/android/uapi/",
119*77b80299SAndroid Build Coastguard Worker        "bionic/libc/kernel/uapi/",
120*77b80299SAndroid Build Coastguard Worker    ],
121*77b80299SAndroid Build Coastguard Worker
122*77b80299SAndroid Build Coastguard Worker    defaults: [
123*77b80299SAndroid Build Coastguard Worker        "libhwbinder_defaults",
124*77b80299SAndroid Build Coastguard Worker        "libhwbinder-impl-shared-libs",
125*77b80299SAndroid Build Coastguard Worker        "hwbinder_lto",
126*77b80299SAndroid Build Coastguard Worker    ],
127*77b80299SAndroid Build Coastguard Worker    host_supported: true,
128*77b80299SAndroid Build Coastguard Worker    recovery_available: true,
129*77b80299SAndroid Build Coastguard Worker    vendor_available: true,
130*77b80299SAndroid Build Coastguard Worker    product_available: true,
131*77b80299SAndroid Build Coastguard Worker    // TODO(b/153609531): remove when no longer needed.
132*77b80299SAndroid Build Coastguard Worker    native_bridge_supported: true,
133*77b80299SAndroid Build Coastguard Worker    apex_available: [
134*77b80299SAndroid Build Coastguard Worker        "//apex_available:platform",
135*77b80299SAndroid Build Coastguard Worker        "com.android.neuralnetworks",
136*77b80299SAndroid Build Coastguard Worker        "com.android.btservices",
137*77b80299SAndroid Build Coastguard Worker        "com.android.media",
138*77b80299SAndroid Build Coastguard Worker        "com.android.media.swcodec",
139*77b80299SAndroid Build Coastguard Worker        "com.android.nfcservices",
140*77b80299SAndroid Build Coastguard Worker        "com.android.tethering",
141*77b80299SAndroid Build Coastguard Worker    ],
142*77b80299SAndroid Build Coastguard Worker    min_sdk_version: "29",
143*77b80299SAndroid Build Coastguard Worker}
144*77b80299SAndroid Build Coastguard Worker
145*77b80299SAndroid Build Coastguard Worker// Provide lto property to build hwbinder with LTO
146*77b80299SAndroid Build Coastguard Workercc_defaults {
147*77b80299SAndroid Build Coastguard Worker    name: "hwbinder_lto",
148*77b80299SAndroid Build Coastguard Worker    target: {
149*77b80299SAndroid Build Coastguard Worker        android: {
150*77b80299SAndroid Build Coastguard Worker            lto: {
151*77b80299SAndroid Build Coastguard Worker                thin: true,
152*77b80299SAndroid Build Coastguard Worker            },
153*77b80299SAndroid Build Coastguard Worker        },
154*77b80299SAndroid Build Coastguard Worker    },
155*77b80299SAndroid Build Coastguard Worker}
156