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