blob: 9a2d14af320f0b1ce1acc877fdcabc5bde7d4349 [file] [log] [blame]
Steven Moreland2e87adc2018-08-20 19:47:00 -07001/*
2 * Copyright (C) 2018 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Steven Morelande8a434d2019-09-20 18:42:35 +000017// TODO(b/31559095): bionic on host should define this
Bob Badour3c538232021-02-12 21:26:48 -080018package {
19 default_applicable_licenses: ["frameworks_native_libs_binder_ndk_license"],
20}
21
22// Added automatically by a large-scale-change
23// See: http://go/android-license-faq
24license {
25 name: "frameworks_native_libs_binder_ndk_license",
26 visibility: [":__subpackages__"],
27 license_kinds: [
28 "SPDX-license-identifier-Apache-2.0",
29 ],
30 license_text: [
31 "NOTICE",
32 ],
33}
34
Steven Moreland28f81422019-10-03 10:40:59 -070035cc_library {
Steven Moreland2e87adc2018-08-20 19:47:00 -070036 name: "libbinder_ndk",
Steven Moreland2e87adc2018-08-20 19:47:00 -070037
Steven Morelande8a434d2019-09-20 18:42:35 +000038 host_supported: true,
Yifan Hong70786532021-10-20 21:41:18 -070039 recovery_available: true,
Steven Morelande8a434d2019-09-20 18:42:35 +000040
Colin Cross03943642021-04-21 16:47:25 -070041 llndk: {
42 symbol_file: "libbinder_ndk.map.txt",
Devin Mooreeb653ee2024-03-09 00:45:39 +000043 export_llndk_headers: ["libvendorsupport_llndk_headers"],
Colin Cross03943642021-04-21 16:47:25 -070044 },
Colin Cross8af6d1c2020-10-19 13:38:00 -070045
Steven Moreland2e87adc2018-08-20 19:47:00 -070046 export_include_dirs: [
Steven Moreland34aac102020-07-07 23:24:45 +000047 "include_cpp",
Steven Moreland2e87adc2018-08-20 19:47:00 -070048 "include_ndk",
Steven Moreland6b7ea2a2019-08-08 16:19:21 -070049 "include_platform",
Steven Moreland2e87adc2018-08-20 19:47:00 -070050 ],
51
Steven Morelandb8cfad52019-01-09 13:07:00 -080052 cflags: [
Andrei Homescu38eafb72024-03-22 22:38:08 +000053 "-DBINDER_WITH_KERNEL_IPC",
Steven Morelandb8cfad52019-01-09 13:07:00 -080054 "-Wall",
55 "-Wextra",
Andrei Homescu40dbf252024-03-28 21:19:42 +000056 "-Wextra-semi",
Steven Morelandb8cfad52019-01-09 13:07:00 -080057 "-Werror",
58 ],
Steven Moreland763dc4c2018-12-12 11:30:06 -080059
Steven Moreland2e87adc2018-08-20 19:47:00 -070060 srcs: [
Steven Moreland4d5ad492018-09-13 12:49:16 -070061 "ibinder.cpp",
Steven Moreland02f75652018-09-18 14:08:30 -070062 "ibinder_jni.cpp",
Steven Moreland39fdec92022-08-27 00:27:37 +000063 "libbinder.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070064 "parcel.cpp",
Steven Moreland7c615582020-01-06 16:34:39 -080065 "parcel_jni.cpp",
Devin Moore33ce3302023-10-20 16:53:08 +000066 "persistable_bundle.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070067 "process.cpp",
Steven Moreland12300a02019-08-02 13:27:15 -070068 "stability.cpp",
Steven Moreland5d62e442018-09-13 15:01:02 -070069 "status.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070070 "service_manager.cpp",
Steven Moreland2e87adc2018-08-20 19:47:00 -070071 ],
72
Steven Morelandff325422022-12-22 22:25:47 +000073 static_libs: [
Jooyung Han1f65e772019-03-07 16:55:04 +090074 "libandroid_runtime_lazy",
Steven Moreland2e87adc2018-08-20 19:47:00 -070075 "libbase",
Steven Morelandff325422022-12-22 22:25:47 +000076 ],
77
78 shared_libs: [
Steven Moreland2e87adc2018-08-20 19:47:00 -070079 "libbinder",
Steven Morelandff325422022-12-22 22:25:47 +000080 "liblog",
Steven Moreland2e87adc2018-08-20 19:47:00 -070081 "libutils",
82 ],
dimitryb2cf95d2018-10-31 14:56:29 +010083
Steven Morelandf01f7442019-02-11 15:04:13 -080084 header_libs: [
Devin Mooreeb653ee2024-03-09 00:45:39 +000085 "libvendorsupport_llndk_headers",
Steven Morelandf01f7442019-02-11 15:04:13 -080086 "jni_headers",
87 ],
88 export_header_lib_headers: [
Devin Mooreeb653ee2024-03-09 00:45:39 +000089 "libvendorsupport_llndk_headers",
Steven Morelandf01f7442019-02-11 15:04:13 -080090 "jni_headers",
91 ],
92
Steven Morelande8a434d2019-09-20 18:42:35 +000093 target: {
Steven Moreland28f81422019-10-03 10:40:59 -070094 android: {
95 // Only one copy of this library on an Android device
96 static: {
97 enabled: false,
98 },
99 },
Steven Morelande8a434d2019-09-20 18:42:35 +0000100 linux: {
101 version_script: "libbinder_ndk.map.txt",
102 },
Yifan Hongf856a982020-10-30 14:51:17 -0700103 darwin: {
104 enabled: false,
105 },
Steven Morelande8a434d2019-09-20 18:42:35 +0000106 },
Dongwon Kangc45ac092018-12-11 21:59:02 +0000107 stubs: {
108 symbol_file: "libbinder_ndk.map.txt",
Steven Morelande8a434d2019-09-20 18:42:35 +0000109 versions: [
110 "29",
111 "30",
112 ],
Dongwon Kangc45ac092018-12-11 21:59:02 +0000113 },
Steven Morelanda7f076e2021-09-08 16:06:18 -0700114 sanitize: {
115 misc_undefined: ["integer"],
116 },
Jiyong Park4f97a8c2020-11-16 18:11:14 +0900117 tidy: true,
118 tidy_flags: [
119 // Only check our headers
120 "--header-filter=^.*frameworks/native/libs/binder/.*.h$",
121 ],
122 tidy_checks_as_errors: [
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800123 // Explicitly list the checks that should not occur in this module.
124 "abseil-*",
125 "android-*",
126 "bugprone-*",
Chih-Hung Hsieh41366b42022-06-09 23:12:22 -0700127 "-bugprone-branch-clone", // b/155034972
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800128 "cert-*",
129 "clang-analyzer-*",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900130 "-clang-analyzer-core.CallAndMessage",
131 "-clang-analyzer-core.uninitialized.Assign",
Jiyong Park21a7de52021-01-12 17:54:27 +0900132 "-clang-analyzer-unix.Malloc",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900133 "-clang-analyzer-deadcode.DeadStores",
134 "-clang-analyzer-optin.cplusplus.UninitializedObject",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800135 "google-*",
136 "-google-readability-*",
137 "-google-runtime-references",
138 "misc-*",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900139 "-misc-no-recursion",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800140 "-misc-non-private-member-variables-in-classes",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900141 "-misc-redundant-expression",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800142 "-misc-unused-parameters",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900143 "-misc-unused-using-decls",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800144 "performance*",
145 "portability*",
Jiyong Park4f97a8c2020-11-16 18:11:14 +0900146 ],
Yi Kong223f81b2023-12-01 00:34:23 +0900147 afdo: true,
Steven Moreland2e87adc2018-08-20 19:47:00 -0700148}
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700149
Andrei Homescu40dbf252024-03-28 21:19:42 +0000150cc_library {
151 name: "libbinder_ndk_on_trusty_mock",
152 defaults: [
153 "trusty_mock_defaults",
154 ],
155
156 export_include_dirs: [
157 "include_cpp",
158 "include_ndk",
159 "include_platform",
160 ],
161
162 srcs: [
163 "ibinder.cpp",
164 "libbinder.cpp",
165 "parcel.cpp",
166 "stability.cpp",
167 "status.cpp",
168 ],
169
170 shared_libs: [
171 "libbinder_on_trusty_mock",
172 ],
173
174 header_libs: [
175 "libbinder_trusty_ndk_headers",
176 ],
177 export_header_lib_headers: [
178 "libbinder_trusty_ndk_headers",
179 ],
180
181 cflags: [
182 "-Wall",
183 "-Wextra",
184 "-Werror",
185 ],
186
187 visibility: ["//frameworks/native/libs/binder:__subpackages__"],
188}
189
Jooyung Hancaede592021-02-04 10:18:37 +0900190cc_library_headers {
191 name: "libbinder_headers_platform_shared",
192 export_include_dirs: ["include_cpp"],
193 vendor_available: true,
Yifan Hong70786532021-10-20 21:41:18 -0700194 recovery_available: true,
Jooyung Hancaede592021-02-04 10:18:37 +0900195 host_supported: true,
196 // TODO(b/153609531): remove when no longer needed.
197 native_bridge_supported: true,
198 target: {
199 darwin: {
200 enabled: false,
201 },
202 },
Jooyung Hancaede592021-02-04 10:18:37 +0900203 apex_available: [
204 "//apex_available:platform",
Jooyung Hancaede592021-02-04 10:18:37 +0900205 "com.android.media",
206 "com.android.media.swcodec",
Jooyung Hancaede592021-02-04 10:18:37 +0900207 ],
Jooyung Han5f6a89a2021-02-05 15:28:58 +0900208 min_sdk_version: "29",
Jooyung Hancaede592021-02-04 10:18:37 +0900209}
210
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700211ndk_headers {
212 name: "libbinder_ndk_headers",
213 from: "include_ndk/android",
214 to: "android",
215 srcs: [
216 "include_ndk/android/*.h",
217 ],
218 license: "NOTICE",
219}
220
Luxin Yange1bbdf42022-02-16 06:40:53 +0000221// TODO(b/160624671): package with the aidl compiler
222ndk_headers {
223 name: "libbinder_ndk_helper_headers",
224 from: "include_cpp/android",
225 to: "android",
226 srcs: [
227 "include_cpp/android/*.h",
228 ],
229 license: "NOTICE",
230}
231
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700232ndk_library {
233 name: "libbinder_ndk",
234 symbol_file: "libbinder_ndk.map.txt",
235 first_version: "29",
Spandan Dase4344ee2022-09-08 21:41:29 +0000236 export_header_libs: [
237 "libbinder_ndk_headers",
238 "libbinder_ndk_helper_headers",
239 ],
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700240}