blob: 879792cd99b503ecd46f990b24acdd20bdec4a47 [file] [log] [blame]
Dan Willemsen8fd503f2016-10-04 20:04:36 -07001//
2// Copyright (C) 2015 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
17cc_defaults {
18 name: "aidl_defaults",
Chih-Hung Hsieh15607962017-10-02 10:03:55 -070019 cflags: [
Dan Willemsen8fd503f2016-10-04 20:04:36 -070020 "-Wall",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070021 "-Werror",
Chih-Hung Hsieh15607962017-10-02 10:03:55 -070022 "-Wextra",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070023 ],
24 whole_static_libs: ["libgtest_prod"],
25 static_libs: [
26 "libbase",
27 "libcutils",
28 ],
29 target: {
30 windows: {
31 enabled: true,
32 },
Steven Morelandb49a33d2019-08-21 11:17:32 -070033 host: {
34 cflags: [
35 "-O0",
36 "-g",
37 ],
38 },
Dan Willemsen8fd503f2016-10-04 20:04:36 -070039 },
40}
41
42// Logic shared between aidl and its unittests
Andreas Gampe76a6a462018-10-08 17:44:16 -070043cc_library_static {
Dan Willemsen8fd503f2016-10-04 20:04:36 -070044 name: "libaidl-common",
45 defaults: ["aidl_defaults"],
Andreas Gampe76a6a462018-10-08 17:44:16 -070046 host_supported: true,
Chih-Hung Hsieh75a07752020-02-14 10:38:48 -080047 cflags: [
48 "-Wno-bool-operation", // found in aidl_const_expressions.cpp:69
49 ],
Dan Willemsen8fd503f2016-10-04 20:04:36 -070050
Dan Willemsen8fd503f2016-10-04 20:04:36 -070051 srcs: [
52 "aidl.cpp",
Steven Moreland49585242019-12-18 16:06:49 -080053 "aidl_checkapi.cpp",
Will McVickerefd970d2019-09-25 15:28:30 -070054 "aidl_const_expressions.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070055 "aidl_language.cpp",
56 "aidl_language_l.ll",
57 "aidl_language_y.yy",
Jiyong Park1deecc32018-07-17 01:14:41 +090058 "aidl_typenames.cpp",
Steven Moreland860b1942018-08-16 14:59:28 -070059 "aidl_to_cpp.cpp",
Jiyong Park1d2df7d2018-07-23 15:22:50 +090060 "aidl_to_java.cpp",
Steven Morelande8a3a192018-09-20 14:14:28 -070061 "aidl_to_ndk.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070062 "ast_cpp.cpp",
63 "ast_java.cpp",
64 "code_writer.cpp",
65 "generate_cpp.cpp",
Steven Morelandb0057e72018-08-27 01:44:11 -070066 "aidl_to_cpp_common.cpp",
67 "generate_ndk.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070068 "generate_java.cpp",
69 "generate_java_binder.cpp",
Andrei Onea8714b022019-02-01 18:55:54 +000070 "generate_aidl_mappings.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070071 "import_resolver.cpp",
72 "line_reader.cpp",
73 "io_delegate.cpp",
74 "options.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070075 ],
Dan Willemsenfad411f2019-04-12 14:40:55 -070076 yacc: {
77 gen_location_hh: true,
78 gen_position_hh: true,
79 },
Dan Willemsen8fd503f2016-10-04 20:04:36 -070080}
81
82// aidl executable
83cc_binary_host {
84 name: "aidl",
85 defaults: ["aidl_defaults"],
Jiyong Park74595c12018-07-23 15:22:50 +090086 srcs: ["main.cpp"],
Dan Willemsen8fd503f2016-10-04 20:04:36 -070087 static_libs: [
88 "libaidl-common",
89 "libbase",
Tom Cherryffe43cd2020-01-08 14:10:30 -080090 "liblog",
Dan Willemsen8fd503f2016-10-04 20:04:36 -070091 ],
92}
93
Steven Morelandbb654e32020-01-08 19:52:05 -080094// aidl-cpp legacy executable, please use 'aidl' instead
Dan Willemsen8fd503f2016-10-04 20:04:36 -070095cc_binary_host {
96 name: "aidl-cpp",
97 defaults: ["aidl_defaults"],
Steven Morelandbb654e32020-01-08 19:52:05 -080098 srcs: ["main.cpp"],
99 cflags: ["-DAIDL_CPP_BUILD"],
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700100 static_libs: [
101 "libaidl-common",
102 "libbase",
Tom Cherryffe43cd2020-01-08 14:10:30 -0800103 "liblog",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700104 ],
105}
106
107// Unit tests
Andreas Gampe76a6a462018-10-08 17:44:16 -0700108cc_test {
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700109 name: "aidl_unittests",
Andreas Gampe76a6a462018-10-08 17:44:16 -0700110 host_supported: true,
111
112 test_suites: ["device-tests"],
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700113
114 cflags: [
115 "-Wall",
116 "-Wextra",
117 "-Werror",
118 "-g",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700119 ],
Steven Moreland1c41e972018-07-09 16:07:00 -0700120
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700121 srcs: [
122 "aidl_unittest.cpp",
123 "ast_cpp_unittest.cpp",
124 "ast_java_unittest.cpp",
Jiyong Park22b4ecd2018-07-23 23:34:42 +0900125 "code_writer_unittest.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700126 "generate_cpp_unittest.cpp",
127 "io_delegate_unittest.cpp",
128 "options_unittest.cpp",
129 "tests/end_to_end_tests.cpp",
130 "tests/fake_io_delegate.cpp",
131 "tests/main.cpp",
132 "tests/test_data_example_interface.cpp",
133 "tests/test_data_ping_responder.cpp",
134 "tests/test_data_string_constants.cpp",
135 "tests/test_util.cpp",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700136 ],
137
138 static_libs: [
139 "libaidl-common",
140 "libbase",
141 "libcutils",
Steven Moreland57ec44a2019-10-25 15:50:21 -0700142 "libgmock",
Tom Cherryffe43cd2020-01-08 14:10:30 -0800143 "liblog",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700144 ],
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700145}
146
Steven Moreland45857d72019-10-25 17:08:09 -0700147cc_fuzz {
148 name: "aidl_parser_fuzzer",
149 host_supported: true,
150 dictionary: "tests/aidl_parser_fuzzer.dict",
Mitch Phillips17fad882019-12-18 11:27:40 -0800151 corpus: [
152 "tests/corpus/*",
153 ],
Steven Moreland00f1ee72019-11-04 09:52:06 -0800154
155 fuzz_config: {
156 cc: [
157 "smoreland@google.com",
158 "jiyong@google.com",
159 "jeongik@google.com",
160 ],
161 },
162
Steven Moreland45857d72019-10-25 17:08:09 -0700163 srcs: [
164 "tests/aidl_parser_fuzzer.cpp",
165 "tests/fake_io_delegate.cpp",
166 "tests/test_util.cpp",
167 ],
168 static_libs: [
169 "libaidl-common",
170 "libbase",
171 "libcutils",
Tom Cherryffe43cd2020-01-08 14:10:30 -0800172 "liblog",
Steven Moreland45857d72019-10-25 17:08:09 -0700173 ],
Steven Moreland45857d72019-10-25 17:08:09 -0700174 // Enable this to show additional information about what is being parsed during fuzzing.
175 // cflags: ["-DFUZZ_LOG"],
176}
177
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700178//
179// Everything below here is used for integration testing of generated AIDL code.
180//
Steven Moreland87bbbd82019-07-30 16:32:54 -0700181cc_test {
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700182 name: "aidl_test_sentinel_searcher",
Steven Moreland87bbbd82019-07-30 16:32:54 -0700183 gtest: false,
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700184 srcs: ["tests/aidl_test_sentinel_searcher.cpp"],
185 cflags: [
186 "-Wall",
187 "-Wextra",
188 "-Werror",
Dan Willemsen8fd503f2016-10-04 20:04:36 -0700189 ],
190}
Dan Willemsen8f883612016-11-03 14:22:48 -0700191
192cc_defaults {
193 name: "aidl_test_defaults",
194 cflags: [
195 "-Wall",
196 "-Wextra",
197 "-Werror",
Dan Willemsen8f883612016-11-03 14:22:48 -0700198 ],
199 shared_libs: [
200 "libbase",
201 "libbinder",
202 "liblog",
203 "libutils",
204 ],
205}
206
Dan Willemsenc46b65e2019-06-06 10:55:58 -0700207filegroup {
208 name: "libaidl-integration-test-files",
209 srcs: ["tests/android/aidl/tests/*.aidl"],
210 path: "tests",
211}
212
Steven Moreland87bbbd82019-07-30 16:32:54 -0700213cc_library_static {
Dan Willemsen8f883612016-11-03 14:22:48 -0700214 name: "libaidl-integration-test",
215 defaults: ["aidl_test_defaults"],
216 aidl: {
217 export_aidl_headers: true,
218 local_include_dirs: ["tests"],
219 include_dirs: ["frameworks/native/aidl/binder"],
220 },
221 srcs: [
Dan Willemsenc46b65e2019-06-06 10:55:58 -0700222 ":libaidl-integration-test-files",
Dan Willemsen8f883612016-11-03 14:22:48 -0700223 "tests/simple_parcelable.cpp",
224 ],
225}
226
Steven Moreland87bbbd82019-07-30 16:32:54 -0700227cc_test {
Dan Willemsen8f883612016-11-03 14:22:48 -0700228 name: "aidl_test_service",
Steven Moreland87bbbd82019-07-30 16:32:54 -0700229 gtest: false,
Dan Willemsen8f883612016-11-03 14:22:48 -0700230 defaults: ["aidl_test_defaults"],
Steven Moreland87bbbd82019-07-30 16:32:54 -0700231 static_libs: ["libaidl-integration-test"],
Dan Willemsen8f883612016-11-03 14:22:48 -0700232 srcs: ["tests/aidl_test_service.cpp"],
233}
234
Steven Moreland87bbbd82019-07-30 16:32:54 -0700235cc_test {
Dan Willemsen8f883612016-11-03 14:22:48 -0700236 name: "aidl_test_client",
Steven Moreland87bbbd82019-07-30 16:32:54 -0700237 gtest: false,
Dan Willemsen8f883612016-11-03 14:22:48 -0700238 defaults: ["aidl_test_defaults"],
Steven Moreland87bbbd82019-07-30 16:32:54 -0700239 static_libs: ["libaidl-integration-test"],
Dan Willemsen8f883612016-11-03 14:22:48 -0700240 srcs: [
241 "tests/aidl_test_client.cpp",
242 "tests/aidl_test_client_file_descriptors.cpp",
243 "tests/aidl_test_client_parcelables.cpp",
244 "tests/aidl_test_client_nullables.cpp",
245 "tests/aidl_test_client_primitives.cpp",
246 "tests/aidl_test_client_utf8_strings.cpp",
247 "tests/aidl_test_client_service_exceptions.cpp",
Jiyong Park75e1a742018-07-04 12:31:23 +0900248 "tests/aidl_test_client_defaultimpl.cpp",
Dan Willemsen8f883612016-11-03 14:22:48 -0700249 ],
250}
Steven Moreland0ae34602018-06-28 10:08:19 -0700251
252android_app {
253 name: "aidl_test_services",
254 platform_apis: true,
255 // Turn off Java optimization tools to speed up our test iterations.
256 optimize: {
257 enabled: false,
258 },
259 dex_preopt: {
260 enabled: false,
261 },
262 certificate: "platform",
263 manifest: "tests/java_app/AndroidManifest.xml",
264 resource_dirs: ["tests/java_app/resources"],
265 srcs: [
Steven Moreland2a9a7d62019-02-05 16:11:54 -0800266 "tests/android/aidl/tests/*.aidl",
Jeongik Chae74c86d2019-12-12 16:54:03 +0900267 "tests/android/aidl/tests/generic/*.aidl",
Jeongik Chae48d9942020-01-02 17:39:00 +0900268 "tests/android/aidl/tests/map/*.aidl",
Jeongik Chae74c86d2019-12-12 16:54:03 +0900269 "tests/java_app/src/android/aidl/tests/GenericTests.java",
Jeongik Chae48d9942020-01-02 17:39:00 +0900270 "tests/java_app/src/android/aidl/tests/MapTests.java",
Steven Moreland0ae34602018-06-28 10:08:19 -0700271 "tests/java_app/src/android/aidl/tests/NullableTests.java",
272 "tests/java_app/src/android/aidl/tests/SimpleParcelable.java",
273 "tests/java_app/src/android/aidl/tests/TestFailException.java",
274 "tests/java_app/src/android/aidl/tests/TestLogger.java",
275 "tests/java_app/src/android/aidl/tests/TestServiceClient.java",
Jeongik Chae74c86d2019-12-12 16:54:03 +0900276 "tests/java_app/src/android/aidl/tests/generic/Pair.java",
Steven Moreland0ae34602018-06-28 10:08:19 -0700277 ],
278 aidl: {
279 include_dirs: [
280 "system/tools/aidl/tests/",
281 "frameworks/native/aidl/binder",
282 ],
283 },
284}
Jiyong Parkce50e262018-10-29 09:54:20 +0900285
286aidl_interface {
Steven Moreland2a9a7d62019-02-05 16:11:54 -0800287 name: "aidl_test_loggable_interface",
Jiyong Park11afe442020-04-13 11:32:05 +0900288 unstable: true,
Jiyong Parkce50e262018-10-29 09:54:20 +0900289 local_include_dir: "tests",
290 srcs: [
Steven Moreland6e435322019-03-29 18:16:39 -0700291 "tests/android/aidl/loggable/ILoggableInterface.aidl",
Jiyong Parkce50e262018-10-29 09:54:20 +0900292 ],
Devin Mooreff1e4812020-04-16 11:22:55 -0700293 gen_trace: true,
Jiyong Parkce50e262018-10-29 09:54:20 +0900294 backend: {
295 cpp: {
296 gen_log: true,
297 },
298 ndk: {
Jeongik Cha37e2ad52019-04-18 13:44:26 +0900299 gen_log: true,
300 },
301 },
Steven Morelandbb654e32020-01-08 19:52:05 -0800302}