xref: /aosp_15_r20/external/emboss/compiler/back_end/cpp/BUILD (revision 99e0aae7469b87d12f0ad23e61142c2d74c1ef70)
1*99e0aae7SDavid Rees# Copyright 2019 Google LLC
2*99e0aae7SDavid Rees#
3*99e0aae7SDavid Rees# Licensed under the Apache License, Version 2.0 (the "License");
4*99e0aae7SDavid Rees# you may not use this file except in compliance with the License.
5*99e0aae7SDavid Rees# You may obtain a copy of the License at
6*99e0aae7SDavid Rees#
7*99e0aae7SDavid Rees#     https://www.apache.org/licenses/LICENSE-2.0
8*99e0aae7SDavid Rees#
9*99e0aae7SDavid Rees# Unless required by applicable law or agreed to in writing, software
10*99e0aae7SDavid Rees# distributed under the License is distributed on an "AS IS" BASIS,
11*99e0aae7SDavid Rees# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*99e0aae7SDavid Rees# See the License for the specific language governing permissions and
13*99e0aae7SDavid Rees# limitations under the License.
14*99e0aae7SDavid Rees
15*99e0aae7SDavid Rees# Emboss C++ code generator.
16*99e0aae7SDavid Rees
17*99e0aae7SDavid Reesload("@rules_python//python:py_binary.bzl", "py_binary")
18*99e0aae7SDavid Reesload("@rules_python//python:py_library.bzl", "py_library")
19*99e0aae7SDavid Reesload("@rules_python//python:py_test.bzl", "py_test")
20*99e0aae7SDavid Reesload(":build_defs.bzl", "emboss_cc_test")
21*99e0aae7SDavid Rees
22*99e0aae7SDavid Reespackage(
23*99e0aae7SDavid Rees    default_visibility = [
24*99e0aae7SDavid Rees        "//visibility:private",
25*99e0aae7SDavid Rees    ],
26*99e0aae7SDavid Rees    features = ["-layering_check"],
27*99e0aae7SDavid Rees)
28*99e0aae7SDavid Rees
29*99e0aae7SDavid Reespy_binary(
30*99e0aae7SDavid Rees    name = "emboss_codegen_cpp",
31*99e0aae7SDavid Rees    srcs = ["emboss_codegen_cpp.py"],
32*99e0aae7SDavid Rees    python_version = "PY3",
33*99e0aae7SDavid Rees    visibility = ["//visibility:public"],
34*99e0aae7SDavid Rees    deps = [
35*99e0aae7SDavid Rees        ":header_generator",
36*99e0aae7SDavid Rees        "//compiler/util:ir_data",
37*99e0aae7SDavid Rees    ],
38*99e0aae7SDavid Rees)
39*99e0aae7SDavid Rees
40*99e0aae7SDavid Reespy_library(
41*99e0aae7SDavid Rees    name = "attributes",
42*99e0aae7SDavid Rees    srcs = ["attributes.py"],
43*99e0aae7SDavid Rees    deps = [],
44*99e0aae7SDavid Rees)
45*99e0aae7SDavid Rees
46*99e0aae7SDavid Reespy_library(
47*99e0aae7SDavid Rees    name = "header_generator",
48*99e0aae7SDavid Rees    srcs = ["header_generator.py"],
49*99e0aae7SDavid Rees    data = [
50*99e0aae7SDavid Rees        "generated_code_templates",
51*99e0aae7SDavid Rees    ],
52*99e0aae7SDavid Rees    deps = [
53*99e0aae7SDavid Rees        ":attributes",
54*99e0aae7SDavid Rees        "//compiler/back_end/util:code_template",
55*99e0aae7SDavid Rees        "//compiler/util:attribute_util",
56*99e0aae7SDavid Rees        "//compiler/util:ir_data",
57*99e0aae7SDavid Rees        "//compiler/util:ir_util",
58*99e0aae7SDavid Rees        "//compiler/util:name_conversion",
59*99e0aae7SDavid Rees        "//compiler/util:resources",
60*99e0aae7SDavid Rees    ],
61*99e0aae7SDavid Rees)
62*99e0aae7SDavid Rees
63*99e0aae7SDavid Reespy_test(
64*99e0aae7SDavid Rees    name = "header_generator_test",
65*99e0aae7SDavid Rees    srcs = ["header_generator_test.py"],
66*99e0aae7SDavid Rees    deps = [
67*99e0aae7SDavid Rees        ":header_generator",
68*99e0aae7SDavid Rees        "//compiler/front_end:glue",
69*99e0aae7SDavid Rees        "//compiler/util:test_util",
70*99e0aae7SDavid Rees    ],
71*99e0aae7SDavid Rees)
72*99e0aae7SDavid Rees
73*99e0aae7SDavid Reesemboss_cc_test(
74*99e0aae7SDavid Rees    name = "span_se_log_file_status_emb_generated_code_test",
75*99e0aae7SDavid Rees    srcs = [
76*99e0aae7SDavid Rees        "testcode/read_log_file_status_test.cc",
77*99e0aae7SDavid Rees    ],
78*99e0aae7SDavid Rees    deps = [
79*99e0aae7SDavid Rees        "//testdata:span_se_log_file_status_emboss",
80*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
81*99e0aae7SDavid Rees    ],
82*99e0aae7SDavid Rees)
83*99e0aae7SDavid Rees
84*99e0aae7SDavid Reesemboss_cc_test(
85*99e0aae7SDavid Rees    name = "nested_structure_test",
86*99e0aae7SDavid Rees    srcs = [
87*99e0aae7SDavid Rees        "testcode/nested_structure_test.cc",
88*99e0aae7SDavid Rees    ],
89*99e0aae7SDavid Rees    deps = [
90*99e0aae7SDavid Rees        "//testdata:nested_structure_emboss",
91*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
92*99e0aae7SDavid Rees    ],
93*99e0aae7SDavid Rees)
94*99e0aae7SDavid Rees
95*99e0aae7SDavid Reesemboss_cc_test(
96*99e0aae7SDavid Rees    name = "alignments_test",
97*99e0aae7SDavid Rees    srcs = [
98*99e0aae7SDavid Rees        "testcode/alignments_test.cc",
99*99e0aae7SDavid Rees    ],
100*99e0aae7SDavid Rees    deps = [
101*99e0aae7SDavid Rees        "//testdata:alignments_emboss",
102*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
103*99e0aae7SDavid Rees    ],
104*99e0aae7SDavid Rees)
105*99e0aae7SDavid Rees
106*99e0aae7SDavid Reesemboss_cc_test(
107*99e0aae7SDavid Rees    name = "condition_test",
108*99e0aae7SDavid Rees    srcs = [
109*99e0aae7SDavid Rees        "testcode/condition_test.cc",
110*99e0aae7SDavid Rees    ],
111*99e0aae7SDavid Rees    deps = [
112*99e0aae7SDavid Rees        "//testdata:condition_emboss",
113*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
114*99e0aae7SDavid Rees    ],
115*99e0aae7SDavid Rees)
116*99e0aae7SDavid Rees
117*99e0aae7SDavid Reesemboss_cc_test(
118*99e0aae7SDavid Rees    name = "enum_test",
119*99e0aae7SDavid Rees    srcs = [
120*99e0aae7SDavid Rees        "testcode/enum_test.cc",
121*99e0aae7SDavid Rees    ],
122*99e0aae7SDavid Rees    deps = [
123*99e0aae7SDavid Rees        "//testdata:enum_emboss",
124*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
125*99e0aae7SDavid Rees    ],
126*99e0aae7SDavid Rees)
127*99e0aae7SDavid Rees
128*99e0aae7SDavid Reesemboss_cc_test(
129*99e0aae7SDavid Rees    name = "enum_case_test",
130*99e0aae7SDavid Rees    srcs = [
131*99e0aae7SDavid Rees        "testcode/enum_case_test.cc",
132*99e0aae7SDavid Rees    ],
133*99e0aae7SDavid Rees    deps = [
134*99e0aae7SDavid Rees        "//testdata:enum_case_emboss",
135*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
136*99e0aae7SDavid Rees    ],
137*99e0aae7SDavid Rees)
138*99e0aae7SDavid Rees
139*99e0aae7SDavid Reesemboss_cc_test(
140*99e0aae7SDavid Rees    name = "explicit_sizes_test",
141*99e0aae7SDavid Rees    srcs = [
142*99e0aae7SDavid Rees        "testcode/explicit_sizes_test.cc",
143*99e0aae7SDavid Rees    ],
144*99e0aae7SDavid Rees    deps = [
145*99e0aae7SDavid Rees        "//testdata:explicit_sizes_emboss",
146*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
147*99e0aae7SDavid Rees    ],
148*99e0aae7SDavid Rees)
149*99e0aae7SDavid Rees
150*99e0aae7SDavid Reesemboss_cc_test(
151*99e0aae7SDavid Rees    name = "importer_test",
152*99e0aae7SDavid Rees    srcs = [
153*99e0aae7SDavid Rees        "testcode/importer_test.cc",
154*99e0aae7SDavid Rees    ],
155*99e0aae7SDavid Rees    deps = [
156*99e0aae7SDavid Rees        "//testdata:importer_emboss",
157*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
158*99e0aae7SDavid Rees    ],
159*99e0aae7SDavid Rees)
160*99e0aae7SDavid Rees
161*99e0aae7SDavid Reesemboss_cc_test(
162*99e0aae7SDavid Rees    name = "importer2_test",
163*99e0aae7SDavid Rees    srcs = [
164*99e0aae7SDavid Rees        "testcode/importer2_test.cc",
165*99e0aae7SDavid Rees    ],
166*99e0aae7SDavid Rees    deps = [
167*99e0aae7SDavid Rees        "//testdata:importer2_emboss",
168*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
169*99e0aae7SDavid Rees    ],
170*99e0aae7SDavid Rees)
171*99e0aae7SDavid Rees
172*99e0aae7SDavid Reesemboss_cc_test(
173*99e0aae7SDavid Rees    name = "uint_sizes_test",
174*99e0aae7SDavid Rees    srcs = [
175*99e0aae7SDavid Rees        "testcode/uint_sizes_test.cc",
176*99e0aae7SDavid Rees    ],
177*99e0aae7SDavid Rees    deps = [
178*99e0aae7SDavid Rees        "//testdata:uint_sizes_emboss",
179*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
180*99e0aae7SDavid Rees    ],
181*99e0aae7SDavid Rees)
182*99e0aae7SDavid Rees
183*99e0aae7SDavid Reesemboss_cc_test(
184*99e0aae7SDavid Rees    name = "int_sizes_test",
185*99e0aae7SDavid Rees    srcs = [
186*99e0aae7SDavid Rees        "testcode/int_sizes_test.cc",
187*99e0aae7SDavid Rees    ],
188*99e0aae7SDavid Rees    deps = [
189*99e0aae7SDavid Rees        "//testdata:int_sizes_emboss",
190*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
191*99e0aae7SDavid Rees    ],
192*99e0aae7SDavid Rees)
193*99e0aae7SDavid Rees
194*99e0aae7SDavid Reesemboss_cc_test(
195*99e0aae7SDavid Rees    name = "float_test",
196*99e0aae7SDavid Rees    srcs = [
197*99e0aae7SDavid Rees        "testcode/float_test.cc",
198*99e0aae7SDavid Rees    ],
199*99e0aae7SDavid Rees    deps = [
200*99e0aae7SDavid Rees        "//testdata:float_emboss",
201*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
202*99e0aae7SDavid Rees    ],
203*99e0aae7SDavid Rees)
204*99e0aae7SDavid Rees
205*99e0aae7SDavid Reesemboss_cc_test(
206*99e0aae7SDavid Rees    name = "dynamic_size_test",
207*99e0aae7SDavid Rees    srcs = [
208*99e0aae7SDavid Rees        "testcode/dynamic_size_test.cc",
209*99e0aae7SDavid Rees    ],
210*99e0aae7SDavid Rees    deps = [
211*99e0aae7SDavid Rees        "//testdata:dynamic_size_emboss",
212*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
213*99e0aae7SDavid Rees    ],
214*99e0aae7SDavid Rees)
215*99e0aae7SDavid Rees
216*99e0aae7SDavid Reesemboss_cc_test(
217*99e0aae7SDavid Rees    name = "auto_array_size_test",
218*99e0aae7SDavid Rees    srcs = [
219*99e0aae7SDavid Rees        "testcode/auto_array_size_test.cc",
220*99e0aae7SDavid Rees    ],
221*99e0aae7SDavid Rees    deps = [
222*99e0aae7SDavid Rees        "//testdata:auto_array_size_emboss",
223*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
224*99e0aae7SDavid Rees    ],
225*99e0aae7SDavid Rees)
226*99e0aae7SDavid Rees
227*99e0aae7SDavid Reesemboss_cc_test(
228*99e0aae7SDavid Rees    name = "no_enum_traits_test",
229*99e0aae7SDavid Rees    srcs = [
230*99e0aae7SDavid Rees        "testcode/no_enum_traits_test.cc",
231*99e0aae7SDavid Rees    ],
232*99e0aae7SDavid Rees    deps = [
233*99e0aae7SDavid Rees        "//testdata:no_enum_traits_emboss",
234*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
235*99e0aae7SDavid Rees    ],
236*99e0aae7SDavid Rees)
237*99e0aae7SDavid Rees
238*99e0aae7SDavid Reesemboss_cc_test(
239*99e0aae7SDavid Rees    name = "start_size_range_test",
240*99e0aae7SDavid Rees    srcs = [
241*99e0aae7SDavid Rees        "testcode/start_size_range_test.cc",
242*99e0aae7SDavid Rees    ],
243*99e0aae7SDavid Rees    deps = [
244*99e0aae7SDavid Rees        "//testdata:start_size_range_emboss",
245*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
246*99e0aae7SDavid Rees    ],
247*99e0aae7SDavid Rees)
248*99e0aae7SDavid Rees
249*99e0aae7SDavid Reesemboss_cc_test(
250*99e0aae7SDavid Rees    name = "bcd_test",
251*99e0aae7SDavid Rees    srcs = [
252*99e0aae7SDavid Rees        "testcode/bcd_test.cc",
253*99e0aae7SDavid Rees    ],
254*99e0aae7SDavid Rees    deps = [
255*99e0aae7SDavid Rees        "//testdata:bcd_emboss",
256*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
257*99e0aae7SDavid Rees    ],
258*99e0aae7SDavid Rees)
259*99e0aae7SDavid Rees
260*99e0aae7SDavid Reesemboss_cc_test(
261*99e0aae7SDavid Rees    name = "namespace_test",
262*99e0aae7SDavid Rees    srcs = [
263*99e0aae7SDavid Rees        "testcode/namespace_test.cc",
264*99e0aae7SDavid Rees    ],
265*99e0aae7SDavid Rees    deps = [
266*99e0aae7SDavid Rees        "//testdata:absolute_cpp_namespace_emboss",
267*99e0aae7SDavid Rees        "//testdata:cpp_namespace_emboss",
268*99e0aae7SDavid Rees        "//testdata:no_cpp_namespace_emboss",
269*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
270*99e0aae7SDavid Rees    ],
271*99e0aae7SDavid Rees)
272*99e0aae7SDavid Rees
273*99e0aae7SDavid Reesemboss_cc_test(
274*99e0aae7SDavid Rees    name = "requires_test",
275*99e0aae7SDavid Rees    srcs = [
276*99e0aae7SDavid Rees        "testcode/requires_test.cc",
277*99e0aae7SDavid Rees    ],
278*99e0aae7SDavid Rees    deps = [
279*99e0aae7SDavid Rees        "//testdata:requires_emboss",
280*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
281*99e0aae7SDavid Rees    ],
282*99e0aae7SDavid Rees)
283*99e0aae7SDavid Rees
284*99e0aae7SDavid Reesemboss_cc_test(
285*99e0aae7SDavid Rees    name = "subtypes_test",
286*99e0aae7SDavid Rees    srcs = [
287*99e0aae7SDavid Rees        "testcode/subtypes_test.cc",
288*99e0aae7SDavid Rees    ],
289*99e0aae7SDavid Rees    deps = [
290*99e0aae7SDavid Rees        "//testdata:subtypes_emboss",
291*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
292*99e0aae7SDavid Rees    ],
293*99e0aae7SDavid Rees)
294*99e0aae7SDavid Rees
295*99e0aae7SDavid Reesemboss_cc_test(
296*99e0aae7SDavid Rees    name = "inline_type_test",
297*99e0aae7SDavid Rees    srcs = [
298*99e0aae7SDavid Rees        "testcode/inline_type_test.cc",
299*99e0aae7SDavid Rees    ],
300*99e0aae7SDavid Rees    deps = [
301*99e0aae7SDavid Rees        "//testdata:inline_type_emboss",
302*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
303*99e0aae7SDavid Rees    ],
304*99e0aae7SDavid Rees)
305*99e0aae7SDavid Rees
306*99e0aae7SDavid Reesemboss_cc_test(
307*99e0aae7SDavid Rees    name = "bits_test",
308*99e0aae7SDavid Rees    srcs = [
309*99e0aae7SDavid Rees        "testcode/bits_test.cc",
310*99e0aae7SDavid Rees    ],
311*99e0aae7SDavid Rees    deps = [
312*99e0aae7SDavid Rees        "//runtime/cpp:cpp_utils",
313*99e0aae7SDavid Rees        "//testdata:bits_emboss",
314*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
315*99e0aae7SDavid Rees    ],
316*99e0aae7SDavid Rees)
317*99e0aae7SDavid Rees
318*99e0aae7SDavid Reesemboss_cc_test(
319*99e0aae7SDavid Rees    name = "anonymous_bits_test",
320*99e0aae7SDavid Rees    srcs = [
321*99e0aae7SDavid Rees        "testcode/anonymous_bits_test.cc",
322*99e0aae7SDavid Rees    ],
323*99e0aae7SDavid Rees    deps = [
324*99e0aae7SDavid Rees        "//runtime/cpp:cpp_utils",
325*99e0aae7SDavid Rees        "//testdata:anonymous_bits_emboss",
326*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
327*99e0aae7SDavid Rees    ],
328*99e0aae7SDavid Rees)
329*99e0aae7SDavid Rees
330*99e0aae7SDavid Reesemboss_cc_test(
331*99e0aae7SDavid Rees    name = "next_keyword_test",
332*99e0aae7SDavid Rees    srcs = [
333*99e0aae7SDavid Rees        "testcode/next_keyword_test.cc",
334*99e0aae7SDavid Rees    ],
335*99e0aae7SDavid Rees    deps = [
336*99e0aae7SDavid Rees        "//testdata:next_keyword_emboss",
337*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
338*99e0aae7SDavid Rees    ],
339*99e0aae7SDavid Rees)
340*99e0aae7SDavid Rees
341*99e0aae7SDavid Reesemboss_cc_test(
342*99e0aae7SDavid Rees    name = "virtual_field_test",
343*99e0aae7SDavid Rees    srcs = [
344*99e0aae7SDavid Rees        "testcode/virtual_field_test.cc",
345*99e0aae7SDavid Rees    ],
346*99e0aae7SDavid Rees    deps = [
347*99e0aae7SDavid Rees        "//testdata:virtual_field_emboss",
348*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
349*99e0aae7SDavid Rees    ],
350*99e0aae7SDavid Rees)
351*99e0aae7SDavid Rees
352*99e0aae7SDavid Reesemboss_cc_test(
353*99e0aae7SDavid Rees    name = "text_format_test",
354*99e0aae7SDavid Rees    srcs = [
355*99e0aae7SDavid Rees        "testcode/text_format_test.cc",
356*99e0aae7SDavid Rees    ],
357*99e0aae7SDavid Rees    deps = [
358*99e0aae7SDavid Rees        "//testdata:text_format_emboss",
359*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
360*99e0aae7SDavid Rees    ],
361*99e0aae7SDavid Rees)
362*99e0aae7SDavid Rees
363*99e0aae7SDavid Reesemboss_cc_test(
364*99e0aae7SDavid Rees    name = "parameters_test",
365*99e0aae7SDavid Rees    srcs = [
366*99e0aae7SDavid Rees        "testcode/parameters_test.cc",
367*99e0aae7SDavid Rees    ],
368*99e0aae7SDavid Rees    deps = [
369*99e0aae7SDavid Rees        "//testdata:parameters_emboss",
370*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
371*99e0aae7SDavid Rees    ],
372*99e0aae7SDavid Rees)
373*99e0aae7SDavid Rees
374*99e0aae7SDavid Reesemboss_cc_test(
375*99e0aae7SDavid Rees    name = "complex_structure_test",
376*99e0aae7SDavid Rees    srcs = ["testcode/complex_structure_test.cc"],
377*99e0aae7SDavid Rees    deps = [
378*99e0aae7SDavid Rees        "//testdata:complex_structure_emboss",
379*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
380*99e0aae7SDavid Rees    ],
381*99e0aae7SDavid Rees)
382*99e0aae7SDavid Rees
383*99e0aae7SDavid Reesemboss_cc_test(
384*99e0aae7SDavid Rees    name = "complex_offset_test",
385*99e0aae7SDavid Rees    srcs = ["testcode/complex_offset_test.cc"],
386*99e0aae7SDavid Rees    deps = [
387*99e0aae7SDavid Rees        "//testdata:complex_offset_emboss",
388*99e0aae7SDavid Rees        "@com_google_googletest//:gtest_main",
389*99e0aae7SDavid Rees    ],
390*99e0aae7SDavid Rees)
391