blob: fcb2851ea0904c4f2815f99d399b9d89252e7773 [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",
19 clang_cflags: [
20 "-Wall",
21 "-Wextra",
22 "-Werror",
23 ],
24 whole_static_libs: ["libgtest_prod"],
25 static_libs: [
26 "libbase",
27 "libcutils",
28 ],
29 target: {
30 windows: {
31 enabled: true,
32 },
33 },
34}
35
36// Logic shared between aidl and its unittests
37cc_library_host_static {
38 name: "libaidl-common",
39 defaults: ["aidl_defaults"],
40
41 clang_cflags: [
42 // Tragically, the code is riddled with unused parameters.
43 "-Wno-unused-parameter",
44
45 // yacc dumps a lot of code *just in case*.
46 "-Wno-unused-function",
47 "-Wno-unneeded-internal-declaration",
48
49 // yacc is a tool from a more civilized age.
50 "-Wno-deprecated-register",
51
52 // yacc also has a habit of using char* over const char*.
53 "-Wno-writable-strings",
54 ],
55
56 srcs: [
57 "aidl.cpp",
58 "aidl_language.cpp",
59 "aidl_language_l.ll",
60 "aidl_language_y.yy",
61 "ast_cpp.cpp",
62 "ast_java.cpp",
63 "code_writer.cpp",
64 "generate_cpp.cpp",
65 "generate_java.cpp",
66 "generate_java_binder.cpp",
67 "import_resolver.cpp",
68 "line_reader.cpp",
69 "io_delegate.cpp",
70 "options.cpp",
71 "type_cpp.cpp",
72 "type_java.cpp",
73 "type_namespace.cpp",
74 ],
75}
76
77// aidl executable
78cc_binary_host {
79 name: "aidl",
80 defaults: ["aidl_defaults"],
81 srcs: ["main_java.cpp"],
82 static_libs: [
83 "libaidl-common",
84 "libbase",
85 ],
86}
87
88// aidl-cpp executable
89cc_binary_host {
90 name: "aidl-cpp",
91 defaults: ["aidl_defaults"],
92 srcs: ["main_cpp.cpp"],
93 static_libs: [
94 "libaidl-common",
95 "libbase",
96 ],
97}
98
99// Unit tests
100cc_test_host {
101 name: "aidl_unittests",
102
103 cflags: [
104 "-Wall",
105 "-Wextra",
106 "-Werror",
107 "-g",
108 "-DUNIT_TEST",
109 ],
110 // Tragically, the code is riddled with unused parameters.
111 clang_cflags: ["-Wno-unused-parameter"],
112 srcs: [
113 "aidl_unittest.cpp",
114 "ast_cpp_unittest.cpp",
115 "ast_java_unittest.cpp",
116 "generate_cpp_unittest.cpp",
117 "io_delegate_unittest.cpp",
118 "options_unittest.cpp",
119 "tests/end_to_end_tests.cpp",
120 "tests/fake_io_delegate.cpp",
121 "tests/main.cpp",
122 "tests/test_data_example_interface.cpp",
123 "tests/test_data_ping_responder.cpp",
124 "tests/test_data_string_constants.cpp",
125 "tests/test_util.cpp",
126 "type_cpp_unittest.cpp",
127 "type_java_unittest.cpp",
128 ],
129
130 static_libs: [
131 "libaidl-common",
132 "libbase",
133 "libcutils",
134 "libgmock_host",
135 ],
136
137 target: {
138 linux: {
139 host_ldlibs: ["-lrt"],
140 },
141 },
142}
143
144//
145// Everything below here is used for integration testing of generated AIDL code.
146//
147cc_binary {
148 name: "aidl_test_sentinel_searcher",
149 srcs: ["tests/aidl_test_sentinel_searcher.cpp"],
150 cflags: [
151 "-Wall",
152 "-Wextra",
153 "-Werror",
154 "-Wunused-parameter",
155 ],
156}