blob: d76a1f90e8887912e8723f94c23240b138a91c62 [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
18cc_defaults {
19 name: "libbinder_ndk_host_user",
20 target: {
21 host: {
22 cflags: [
23 "-D__INTRODUCED_IN(n)=",
24 "-D__assert(a,b,c)=",
Elliott Hughes906e0bb2019-10-30 14:14:45 -070025 // We want all the APIs to be available on the host.
26 "-D__ANDROID_API__=10000",
Steven Morelande8a434d2019-09-20 18:42:35 +000027 ],
28 },
Yifan Hongf856a982020-10-30 14:51:17 -070029 darwin: {
30 enabled: false,
31 },
Steven Morelande8a434d2019-09-20 18:42:35 +000032 },
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 defaults: ["libbinder_ndk_host_user"],
39 host_supported: true,
40
Colin Cross8af6d1c2020-10-19 13:38:00 -070041 llndk_stubs: "libbinder_ndk.llndk",
42
Steven Moreland2e87adc2018-08-20 19:47:00 -070043 export_include_dirs: [
Steven Moreland34aac102020-07-07 23:24:45 +000044 "include_cpp",
Steven Moreland2e87adc2018-08-20 19:47:00 -070045 "include_ndk",
Steven Moreland6b7ea2a2019-08-08 16:19:21 -070046 "include_platform",
Steven Moreland2e87adc2018-08-20 19:47:00 -070047 ],
48
Steven Morelandb8cfad52019-01-09 13:07:00 -080049 cflags: [
50 "-Wall",
51 "-Wextra",
52 "-Werror",
53 ],
Steven Moreland763dc4c2018-12-12 11:30:06 -080054
Steven Moreland2e87adc2018-08-20 19:47:00 -070055 srcs: [
Steven Moreland4d5ad492018-09-13 12:49:16 -070056 "ibinder.cpp",
Steven Moreland02f75652018-09-18 14:08:30 -070057 "ibinder_jni.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070058 "parcel.cpp",
Steven Moreland7c615582020-01-06 16:34:39 -080059 "parcel_jni.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070060 "process.cpp",
Steven Moreland12300a02019-08-02 13:27:15 -070061 "stability.cpp",
Steven Moreland5d62e442018-09-13 15:01:02 -070062 "status.cpp",
Steven Moreland4d5ad492018-09-13 12:49:16 -070063 "service_manager.cpp",
Steven Moreland2e87adc2018-08-20 19:47:00 -070064 ],
65
66 shared_libs: [
Jooyung Han1f65e772019-03-07 16:55:04 +090067 "libandroid_runtime_lazy",
Steven Moreland2e87adc2018-08-20 19:47:00 -070068 "libbase",
69 "libbinder",
70 "libutils",
71 ],
dimitryb2cf95d2018-10-31 14:56:29 +010072
Steven Morelandf01f7442019-02-11 15:04:13 -080073 header_libs: [
74 "jni_headers",
75 ],
76 export_header_lib_headers: [
77 "jni_headers",
78 ],
79
Steven Morelande8a434d2019-09-20 18:42:35 +000080 target: {
Steven Moreland28f81422019-10-03 10:40:59 -070081 android: {
82 // Only one copy of this library on an Android device
83 static: {
84 enabled: false,
85 },
86 },
Steven Morelande8a434d2019-09-20 18:42:35 +000087 linux: {
88 version_script: "libbinder_ndk.map.txt",
89 },
Yifan Hongf856a982020-10-30 14:51:17 -070090 darwin: {
91 enabled: false,
92 },
Steven Morelande8a434d2019-09-20 18:42:35 +000093 },
Dongwon Kangc45ac092018-12-11 21:59:02 +000094 stubs: {
95 symbol_file: "libbinder_ndk.map.txt",
Steven Morelande8a434d2019-09-20 18:42:35 +000096 versions: [
97 "29",
98 "30",
99 ],
Dongwon Kangc45ac092018-12-11 21:59:02 +0000100 },
Jiyong Park4f97a8c2020-11-16 18:11:14 +0900101 tidy: true,
102 tidy_flags: [
103 // Only check our headers
104 "--header-filter=^.*frameworks/native/libs/binder/.*.h$",
105 ],
106 tidy_checks_as_errors: [
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800107 // Explicitly list the checks that should not occur in this module.
108 "abseil-*",
109 "android-*",
110 "bugprone-*",
111 "cert-*",
112 "clang-analyzer-*",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900113 "-clang-analyzer-core.CallAndMessage",
114 "-clang-analyzer-core.uninitialized.Assign",
Jiyong Park21a7de52021-01-12 17:54:27 +0900115 "-clang-analyzer-unix.Malloc",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900116 "-clang-analyzer-deadcode.DeadStores",
117 "-clang-analyzer-optin.cplusplus.UninitializedObject",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800118 "google-*",
119 "-google-readability-*",
120 "-google-runtime-references",
121 "misc-*",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900122 "-misc-no-recursion",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800123 "-misc-non-private-member-variables-in-classes",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900124 "-misc-redundant-expression",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800125 "-misc-unused-parameters",
Jiyong Park7ad197b2020-12-16 10:14:10 +0900126 "-misc-unused-using-decls",
Chih-Hung Hsieh09d11b32021-01-11 21:29:01 -0800127 "performance*",
128 "portability*",
Jiyong Park4f97a8c2020-11-16 18:11:14 +0900129 ],
Steven Moreland2e87adc2018-08-20 19:47:00 -0700130}
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700131
Jooyung Hancaede592021-02-04 10:18:37 +0900132cc_library_headers {
133 name: "libbinder_headers_platform_shared",
134 export_include_dirs: ["include_cpp"],
135 vendor_available: true,
136 host_supported: true,
137 // TODO(b/153609531): remove when no longer needed.
138 native_bridge_supported: true,
139 target: {
140 darwin: {
141 enabled: false,
142 },
143 },
144 min_sdk_version: "29",
145 apex_available: [
146 "//apex_available:platform",
147 // TODO(b/166468760) remove these three
148 "com.android.media",
149 "com.android.media.swcodec",
150 "test_com.android.media.swcodec",
151 ],
152}
153
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700154ndk_headers {
155 name: "libbinder_ndk_headers",
156 from: "include_ndk/android",
157 to: "android",
158 srcs: [
159 "include_ndk/android/*.h",
160 ],
161 license: "NOTICE",
162}
163
Steven Moreland34aac102020-07-07 23:24:45 +0000164// TODO(b/160624671): package with the aidl compiler
165ndk_headers {
166 name: "libbinder_ndk_helper_headers",
167 from: "include_cpp/android",
168 to: "android",
169 srcs: [
170 "include_cpp/android/*.h",
171 ],
172 license: "NOTICE",
173}
174
Steven Morelandeb0e9cc2018-08-29 01:52:09 -0700175ndk_library {
176 name: "libbinder_ndk",
177 symbol_file: "libbinder_ndk.map.txt",
178 first_version: "29",
179}
Steven Morelandf1ac0ac2019-07-22 17:46:38 -0700180
181llndk_library {
Colin Cross8af6d1c2020-10-19 13:38:00 -0700182 name: "libbinder_ndk.llndk",
Steven Morelandf1ac0ac2019-07-22 17:46:38 -0700183 symbol_file: "libbinder_ndk.map.txt",
184 export_include_dirs: [
Steven Moreland34aac102020-07-07 23:24:45 +0000185 "include_cpp",
Steven Morelandf1ac0ac2019-07-22 17:46:38 -0700186 "include_ndk",
Steven Moreland6b7ea2a2019-08-08 16:19:21 -0700187 "include_platform",
Steven Morelandf1ac0ac2019-07-22 17:46:38 -0700188 ],
189}