xref: /aosp_15_r20/external/cronet/third_party/re2/src/BUILD.bazel (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Copyright 2009 The RE2 Authors.  All Rights Reserved.
2# Use of this source code is governed by a BSD-style
3# license that can be found in the LICENSE file.
4
5# Bazel (http://bazel.build/) BUILD file for RE2.
6
7licenses(["notice"])
8
9exports_files(["LICENSE"])
10
11cc_library(
12    name = "re2",
13    srcs = [
14        "re2/bitmap256.cc",
15        "re2/bitmap256.h",
16        "re2/bitstate.cc",
17        "re2/compile.cc",
18        "re2/dfa.cc",
19        "re2/filtered_re2.cc",
20        "re2/mimics_pcre.cc",
21        "re2/nfa.cc",
22        "re2/onepass.cc",
23        "re2/parse.cc",
24        "re2/perl_groups.cc",
25        "re2/pod_array.h",
26        "re2/prefilter.cc",
27        "re2/prefilter.h",
28        "re2/prefilter_tree.cc",
29        "re2/prefilter_tree.h",
30        "re2/prog.cc",
31        "re2/prog.h",
32        "re2/re2.cc",
33        "re2/regexp.cc",
34        "re2/regexp.h",
35        "re2/set.cc",
36        "re2/simplify.cc",
37        "re2/sparse_array.h",
38        "re2/sparse_set.h",
39        "re2/tostring.cc",
40        "re2/unicode_casefold.cc",
41        "re2/unicode_casefold.h",
42        "re2/unicode_groups.cc",
43        "re2/unicode_groups.h",
44        "re2/walker-inl.h",
45        "util/logging.h",
46        "util/rune.cc",
47        "util/strutil.cc",
48        "util/strutil.h",
49        "util/utf.h",
50    ],
51    hdrs = [
52        "re2/filtered_re2.h",
53        "re2/re2.h",
54        "re2/set.h",
55        "re2/stringpiece.h",
56    ],
57    copts = select({
58        # WebAssembly support for threads is... fraught at every level.
59        "@platforms//cpu:wasm32": [],
60        "@platforms//cpu:wasm64": [],
61        "@platforms//os:emscripten": [],
62        "@platforms//os:wasi": [],
63        "@platforms//os:windows": [],
64        "//conditions:default": ["-pthread"],
65    }),
66    linkopts = select({
67        # macOS doesn't need `-pthread' when linking and it appears that
68        # older versions of Clang will warn about the unused command line
69        # argument, so just don't pass it.
70        "@platforms//os:macos": [],
71        # WebAssembly support for threads is... fraught at every level.
72        "@platforms//cpu:wasm32": [],
73        "@platforms//cpu:wasm64": [],
74        "@platforms//os:emscripten": [],
75        "@platforms//os:wasi": [],
76        "@platforms//os:windows": [],
77        "//conditions:default": ["-pthread"],
78    }),
79    visibility = ["//visibility:public"],
80    deps = [
81        "@abseil-cpp//absl/base",
82        "@abseil-cpp//absl/base:core_headers",
83        "@abseil-cpp//absl/container:fixed_array",
84        "@abseil-cpp//absl/container:flat_hash_map",
85        "@abseil-cpp//absl/container:flat_hash_set",
86        "@abseil-cpp//absl/container:inlined_vector",
87        "@abseil-cpp//absl/strings",
88        "@abseil-cpp//absl/strings:str_format",
89        "@abseil-cpp//absl/synchronization",
90        "@abseil-cpp//absl/types:optional",
91        "@abseil-cpp//absl/types:span",
92    ],
93)
94
95cc_library(
96    name = "testing",
97    testonly = 1,
98    srcs = [
99        "re2/testing/backtrack.cc",
100        "re2/testing/dump.cc",
101        "re2/testing/exhaustive_tester.cc",
102        "re2/testing/null_walker.cc",
103        "re2/testing/regexp_generator.cc",
104        "re2/testing/string_generator.cc",
105        "re2/testing/tester.cc",
106        "util/pcre.cc",
107    ],
108    hdrs = [
109        "re2/testing/exhaustive_tester.h",
110        "re2/testing/regexp_generator.h",
111        "re2/testing/string_generator.h",
112        "re2/testing/tester.h",
113        "util/malloc_counter.h",
114        "util/pcre.h",
115
116        # Exposed for testing only.
117        "re2/bitmap256.h",
118        "re2/pod_array.h",
119        "re2/prefilter.h",
120        "re2/prefilter_tree.h",
121        "re2/prog.h",
122        "re2/regexp.h",
123        "re2/sparse_array.h",
124        "re2/sparse_set.h",
125        "re2/unicode_casefold.h",
126        "re2/unicode_groups.h",
127        "re2/walker-inl.h",
128        "util/logging.h",
129        "util/strutil.h",
130        "util/utf.h",
131    ],
132    visibility = [":__subpackages__"],
133    deps = [
134        ":re2",
135        "@abseil-cpp//absl/base",
136        "@abseil-cpp//absl/base:core_headers",
137        "@abseil-cpp//absl/flags:flag",
138        "@abseil-cpp//absl/strings",
139        "@abseil-cpp//absl/strings:str_format",
140        "@googletest//:gtest",
141    ],
142)
143
144cc_test(
145    name = "charclass_test",
146    size = "small",
147    srcs = ["re2/testing/charclass_test.cc"],
148    deps = [
149        ":testing",
150        "@abseil-cpp//absl/base:core_headers",
151        "@abseil-cpp//absl/strings:str_format",
152        "@googletest//:gtest",
153        "@googletest//:gtest_main",
154    ],
155)
156
157cc_test(
158    name = "compile_test",
159    size = "small",
160    srcs = ["re2/testing/compile_test.cc"],
161    deps = [
162        ":testing",
163        "@abseil-cpp//absl/base:core_headers",
164        "@googletest//:gtest",
165        "@googletest//:gtest_main",
166    ],
167)
168
169cc_test(
170    name = "filtered_re2_test",
171    size = "small",
172    srcs = ["re2/testing/filtered_re2_test.cc"],
173    deps = [
174        ":re2",
175        ":testing",
176        "@abseil-cpp//absl/base:core_headers",
177        "@googletest//:gtest",
178        "@googletest//:gtest_main",
179    ],
180)
181
182cc_test(
183    name = "mimics_pcre_test",
184    size = "small",
185    srcs = ["re2/testing/mimics_pcre_test.cc"],
186    deps = [
187        ":testing",
188        "@abseil-cpp//absl/base:core_headers",
189        "@googletest//:gtest",
190        "@googletest//:gtest_main",
191    ],
192)
193
194cc_test(
195    name = "parse_test",
196    size = "small",
197    srcs = ["re2/testing/parse_test.cc"],
198    deps = [
199        ":testing",
200        "@abseil-cpp//absl/base:core_headers",
201        "@googletest//:gtest",
202        "@googletest//:gtest_main",
203    ],
204)
205
206cc_test(
207    name = "possible_match_test",
208    size = "small",
209    srcs = ["re2/testing/possible_match_test.cc"],
210    deps = [
211        ":re2",
212        ":testing",
213        "@abseil-cpp//absl/base:core_headers",
214        "@abseil-cpp//absl/strings",
215        "@googletest//:gtest",
216        "@googletest//:gtest_main",
217    ],
218)
219
220cc_test(
221    name = "re2_arg_test",
222    size = "small",
223    srcs = ["re2/testing/re2_arg_test.cc"],
224    deps = [
225        ":re2",
226        ":testing",
227        "@abseil-cpp//absl/base:core_headers",
228        "@googletest//:gtest",
229        "@googletest//:gtest_main",
230    ],
231)
232
233cc_test(
234    name = "re2_test",
235    size = "small",
236    srcs = ["re2/testing/re2_test.cc"],
237    deps = [
238        ":re2",
239        ":testing",
240        "@abseil-cpp//absl/base:core_headers",
241        "@abseil-cpp//absl/strings:str_format",
242        "@googletest//:gtest",
243        "@googletest//:gtest_main",
244    ],
245)
246
247cc_test(
248    name = "regexp_test",
249    size = "small",
250    srcs = ["re2/testing/regexp_test.cc"],
251    deps = [
252        ":testing",
253        "@googletest//:gtest",
254        "@googletest//:gtest_main",
255    ],
256)
257
258cc_test(
259    name = "required_prefix_test",
260    size = "small",
261    srcs = ["re2/testing/required_prefix_test.cc"],
262    deps = [
263        ":testing",
264        "@abseil-cpp//absl/base:core_headers",
265        "@googletest//:gtest",
266        "@googletest//:gtest_main",
267    ],
268)
269
270cc_test(
271    name = "search_test",
272    size = "small",
273    srcs = ["re2/testing/search_test.cc"],
274    deps = [
275        ":testing",
276        "@abseil-cpp//absl/base:core_headers",
277        "@googletest//:gtest",
278        "@googletest//:gtest_main",
279    ],
280)
281
282cc_test(
283    name = "set_test",
284    size = "small",
285    srcs = ["re2/testing/set_test.cc"],
286    deps = [
287        ":re2",
288        ":testing",
289        "@googletest//:gtest",
290        "@googletest//:gtest_main",
291    ],
292)
293
294cc_test(
295    name = "simplify_test",
296    size = "small",
297    srcs = ["re2/testing/simplify_test.cc"],
298    deps = [
299        ":testing",
300        "@abseil-cpp//absl/base:core_headers",
301        "@googletest//:gtest",
302        "@googletest//:gtest_main",
303    ],
304)
305
306cc_test(
307    name = "string_generator_test",
308    size = "small",
309    srcs = ["re2/testing/string_generator_test.cc"],
310    deps = [
311        ":testing",
312        "@googletest//:gtest",
313        "@googletest//:gtest_main",
314    ],
315)
316
317cc_test(
318    name = "dfa_test",
319    size = "large",
320    srcs = ["re2/testing/dfa_test.cc"],
321    deps = [
322        ":re2",
323        ":testing",
324        "@abseil-cpp//absl/base:core_headers",
325        "@abseil-cpp//absl/flags:flag",
326        "@abseil-cpp//absl/strings:str_format",
327        "@googletest//:gtest",
328        "@googletest//:gtest_main",
329    ],
330)
331
332cc_test(
333    name = "exhaustive1_test",
334    size = "large",
335    srcs = ["re2/testing/exhaustive1_test.cc"],
336    deps = [
337        ":testing",
338        "@googletest//:gtest",
339        "@googletest//:gtest_main",
340    ],
341)
342
343cc_test(
344    name = "exhaustive2_test",
345    size = "large",
346    srcs = ["re2/testing/exhaustive2_test.cc"],
347    deps = [
348        ":testing",
349        "@googletest//:gtest",
350        "@googletest//:gtest_main",
351    ],
352)
353
354cc_test(
355    name = "exhaustive3_test",
356    size = "large",
357    srcs = ["re2/testing/exhaustive3_test.cc"],
358    deps = [
359        ":testing",
360        "@googletest//:gtest",
361        "@googletest//:gtest_main",
362    ],
363)
364
365cc_test(
366    name = "exhaustive_test",
367    size = "large",
368    srcs = ["re2/testing/exhaustive_test.cc"],
369    deps = [
370        ":testing",
371        "@googletest//:gtest",
372        "@googletest//:gtest_main",
373    ],
374)
375
376cc_test(
377    name = "random_test",
378    size = "large",
379    srcs = ["re2/testing/random_test.cc"],
380    deps = [
381        ":testing",
382        "@abseil-cpp//absl/flags:flag",
383        "@abseil-cpp//absl/strings:str_format",
384        "@googletest//:gtest",
385        "@googletest//:gtest_main",
386    ],
387)
388
389cc_binary(
390    name = "regexp_benchmark",
391    testonly = 1,
392    srcs = ["re2/testing/regexp_benchmark.cc"],
393    deps = [
394        ":re2",
395        ":testing",
396        "@abseil-cpp//absl/container:flat_hash_map",
397        "@abseil-cpp//absl/flags:flag",
398        "@abseil-cpp//absl/strings:str_format",
399        "@abseil-cpp//absl/synchronization",
400        "@google_benchmark//:benchmark_main",
401    ],
402)
403