xref: /aosp_15_r20/external/angle/third_party/abseil-cpp/absl/log/BUILD.bazel (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1#
2# Copyright 2022 The Abseil Authors.
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#      https://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
17load(
18    "//absl:copts/configure_copts.bzl",
19    "ABSL_DEFAULT_COPTS",
20    "ABSL_DEFAULT_LINKOPTS",
21    "ABSL_TEST_COPTS",
22)
23
24package(
25    default_visibility = ["//visibility:public"],
26    features = [
27        "header_modules",
28        "layering_check",
29        "parse_headers",
30    ],
31)
32
33licenses(["notice"])
34
35# Public targets
36
37cc_library(
38    name = "absl_check",
39    hdrs = ["absl_check.h"],
40    copts = ABSL_DEFAULT_COPTS,
41    linkopts = ABSL_DEFAULT_LINKOPTS,
42    deps = [
43        "//absl/log/internal:check_impl",
44    ],
45)
46
47cc_library(
48    name = "absl_log",
49    hdrs = ["absl_log.h"],
50    copts = ABSL_DEFAULT_COPTS,
51    linkopts = ABSL_DEFAULT_LINKOPTS,
52    deps = [
53        "//absl/log/internal:log_impl",
54    ],
55)
56
57cc_library(
58    name = "check",
59    hdrs = ["check.h"],
60    copts = ABSL_DEFAULT_COPTS,
61    linkopts = ABSL_DEFAULT_LINKOPTS,
62    deps = [
63        "//absl/log/internal:check_impl",
64        "//absl/log/internal:check_op",
65        "//absl/log/internal:conditions",
66        "//absl/log/internal:log_message",
67        "//absl/log/internal:strip",
68    ],
69)
70
71cc_library(
72    name = "die_if_null",
73    srcs = ["die_if_null.cc"],
74    hdrs = ["die_if_null.h"],
75    copts = ABSL_DEFAULT_COPTS,
76    linkopts = ABSL_DEFAULT_LINKOPTS,
77    deps = [
78        ":log",
79        "//absl/base:config",
80        "//absl/base:core_headers",
81        "//absl/strings",
82    ],
83)
84
85cc_library(
86    name = "flags",
87    srcs = ["flags.cc"],
88    hdrs = ["flags.h"],
89    copts = ABSL_DEFAULT_COPTS,
90    linkopts = ABSL_DEFAULT_LINKOPTS,
91    visibility = ["//visibility:public"],
92    deps = [
93        ":globals",
94        "//absl/base:config",
95        "//absl/base:core_headers",
96        "//absl/base:log_severity",
97        "//absl/flags:flag",
98        "//absl/flags:marshalling",
99        "//absl/log/internal:config",
100        "//absl/log/internal:flags",
101        "//absl/log/internal:vlog_config",
102        "//absl/strings",
103    ],
104    # Binaries which do not access these flags from C++ still want this library linked in.
105    alwayslink = True,
106)
107
108cc_library(
109    name = "globals",
110    srcs = ["globals.cc"],
111    hdrs = ["globals.h"],
112    copts = ABSL_DEFAULT_COPTS,
113    linkopts = ABSL_DEFAULT_LINKOPTS,
114    visibility = ["//visibility:public"],
115    deps = [
116        "//absl/base:atomic_hook",
117        "//absl/base:config",
118        "//absl/base:core_headers",
119        "//absl/base:log_severity",
120        "//absl/base:raw_logging_internal",
121        "//absl/hash",
122        "//absl/log/internal:vlog_config",
123        "//absl/strings",
124    ],
125)
126
127cc_library(
128    name = "initialize",
129    srcs = ["initialize.cc"],
130    hdrs = ["initialize.h"],
131    copts = ABSL_DEFAULT_COPTS,
132    linkopts = ABSL_DEFAULT_LINKOPTS,
133    visibility = ["//visibility:public"],
134    deps = [
135        ":globals",
136        "//absl/base:config",
137        "//absl/log/internal:globals",
138        "//absl/time",
139    ],
140)
141
142cc_library(
143    name = "log",
144    hdrs = ["log.h"],
145    copts = ABSL_DEFAULT_COPTS,
146    linkopts = ABSL_DEFAULT_LINKOPTS,
147    deps = [
148        ":vlog_is_on",
149        "//absl/log/internal:log_impl",
150    ],
151)
152
153cc_library(
154    name = "log_entry",
155    srcs = ["log_entry.cc"],
156    hdrs = ["log_entry.h"],
157    copts = ABSL_DEFAULT_COPTS,
158    linkopts = ABSL_DEFAULT_LINKOPTS,
159    deps = [
160        "//absl/base:config",
161        "//absl/base:core_headers",
162        "//absl/base:log_severity",
163        "//absl/log/internal:config",
164        "//absl/strings",
165        "//absl/time",
166        "//absl/types:span",
167    ],
168)
169
170cc_library(
171    name = "log_sink",
172    srcs = ["log_sink.cc"],
173    hdrs = ["log_sink.h"],
174    copts = ABSL_DEFAULT_COPTS,
175    linkopts = ABSL_DEFAULT_LINKOPTS,
176    deps = [
177        ":log_entry",
178        "//absl/base:config",
179    ],
180)
181
182cc_library(
183    name = "log_sink_registry",
184    hdrs = ["log_sink_registry.h"],
185    copts = ABSL_DEFAULT_COPTS,
186    linkopts = ABSL_DEFAULT_LINKOPTS,
187    deps = [
188        ":log_sink",
189        "//absl/base:config",
190        "//absl/base:nullability",
191        "//absl/log/internal:log_sink_set",
192    ],
193)
194
195cc_library(
196    name = "log_streamer",
197    hdrs = ["log_streamer.h"],
198    copts = ABSL_DEFAULT_COPTS,
199    linkopts = ABSL_DEFAULT_LINKOPTS,
200    deps = [
201        ":absl_log",
202        "//absl/base:config",
203        "//absl/base:log_severity",
204        "//absl/strings",
205        "//absl/strings:internal",
206        "//absl/types:optional",
207        "//absl/utility",
208    ],
209)
210
211cc_library(
212    name = "scoped_mock_log",
213    testonly = True,
214    srcs = ["scoped_mock_log.cc"],
215    hdrs = ["scoped_mock_log.h"],
216    copts = ABSL_DEFAULT_COPTS,
217    linkopts = ABSL_DEFAULT_LINKOPTS,
218    deps = [
219        ":log_entry",
220        ":log_sink",
221        ":log_sink_registry",
222        "//absl/base:config",
223        "//absl/base:log_severity",
224        "//absl/base:raw_logging_internal",
225        "//absl/strings",
226        "@com_google_googletest//:gtest",
227    ],
228)
229
230cc_library(
231    name = "structured",
232    hdrs = ["structured.h"],
233    copts = ABSL_DEFAULT_COPTS,
234    linkopts = ABSL_DEFAULT_LINKOPTS,
235    deps = [
236        "//absl/base:config",
237        "//absl/base:core_headers",
238        "//absl/log/internal:structured",
239        "//absl/strings",
240    ],
241)
242
243cc_library(
244    name = "absl_vlog_is_on",
245    hdrs = ["absl_vlog_is_on.h"],
246    copts = ABSL_DEFAULT_COPTS,
247    linkopts = ABSL_DEFAULT_LINKOPTS,
248    deps = [
249        "//absl/base:config",
250        "//absl/base:core_headers",
251        "//absl/log/internal:vlog_config",
252        "//absl/strings",
253    ],
254)
255
256cc_library(
257    name = "vlog_is_on",
258    hdrs = ["vlog_is_on.h"],
259    copts = ABSL_DEFAULT_COPTS,
260    linkopts = ABSL_DEFAULT_LINKOPTS,
261    deps = [
262        ":absl_vlog_is_on",
263    ],
264)
265
266# TODO(b/200695798): run this in TAP projects with -DABSL_MAX_VLOG_VERBOSITY={-100,100}
267cc_test(
268    name = "vlog_is_on_test",
269    size = "small",
270    srcs = [
271        "vlog_is_on_test.cc",
272    ],
273    copts = ABSL_TEST_COPTS,
274    linkopts = ABSL_DEFAULT_LINKOPTS,
275    deps = [
276        ":flags",
277        ":globals",
278        ":log",
279        ":scoped_mock_log",
280        ":vlog_is_on",
281        "//absl/base:log_severity",
282        "//absl/flags:flag",
283        "//absl/types:optional",
284        "@com_google_googletest//:gtest",
285        "@com_google_googletest//:gtest_main",
286    ],
287)
288
289# Test targets
290
291cc_test(
292    name = "absl_check_test",
293    size = "small",
294    timeout = "moderate",
295    srcs = ["absl_check_test.cc"],
296    copts = ABSL_TEST_COPTS,
297    linkopts = ABSL_DEFAULT_LINKOPTS,
298    tags = [
299        "no_test:os:ios",
300        "no_test_ios",
301        "no_test_wasm",
302    ],
303    deps = [
304        ":absl_check",
305        ":check_test_impl",
306        "@com_google_googletest//:gtest",
307        "@com_google_googletest//:gtest_main",
308    ],
309)
310
311cc_test(
312    name = "absl_log_basic_test",
313    size = "small",
314    timeout = "moderate",
315    srcs = ["absl_log_basic_test.cc"],
316    copts = ABSL_TEST_COPTS,
317    linkopts = ABSL_DEFAULT_LINKOPTS,
318    deps = [
319        ":absl_log",
320        ":log_basic_test_impl",
321        "@com_google_googletest//:gtest",
322        "@com_google_googletest//:gtest_main",
323    ],
324)
325
326cc_test(
327    name = "check_test",
328    size = "small",
329    timeout = "moderate",
330    srcs = ["check_test.cc"],
331    copts = ABSL_TEST_COPTS,
332    linkopts = ABSL_DEFAULT_LINKOPTS,
333    tags = [
334        "no_test:os:ios",
335        "no_test_ios",
336        "no_test_wasm",
337    ],
338    deps = [
339        ":check",
340        ":check_test_impl",
341        "@com_google_googletest//:gtest",
342        "@com_google_googletest//:gtest_main",
343    ],
344)
345
346cc_library(
347    name = "check_test_impl",
348    testonly = True,
349    copts = ABSL_TEST_COPTS,
350    linkopts = ABSL_DEFAULT_LINKOPTS,
351    tags = [
352        "no_test:os:ios",
353        "no_test_ios",
354        "no_test_wasm",
355    ],
356    textual_hdrs = ["check_test_impl.inc"],
357    visibility = ["//visibility:private"],
358    deps = [
359        "//absl/base:config",
360        "//absl/base:core_headers",
361        "//absl/log/internal:test_helpers",
362        "//absl/status",
363        "//absl/strings",
364        "//absl/strings:string_view",
365        "@com_google_googletest//:gtest",
366    ],
367)
368
369cc_test(
370    name = "die_if_null_test",
371    size = "small",
372    srcs = ["die_if_null_test.cc"],
373    copts = ABSL_TEST_COPTS,
374    linkopts = ABSL_DEFAULT_LINKOPTS,
375    deps = [
376        ":die_if_null",
377        "//absl/base:core_headers",
378        "//absl/log/internal:test_helpers",
379        "@com_google_googletest//:gtest",
380        "@com_google_googletest//:gtest_main",
381    ],
382)
383
384cc_test(
385    name = "flags_test",
386    size = "small",
387    srcs = ["flags_test.cc"],
388    copts = ABSL_TEST_COPTS,
389    linkopts = ABSL_DEFAULT_LINKOPTS,
390    deps = [
391        ":flags",
392        ":globals",
393        ":log",
394        ":scoped_mock_log",
395        "//absl/base:core_headers",
396        "//absl/base:log_severity",
397        "//absl/flags:flag",
398        "//absl/flags:reflection",
399        "//absl/log/internal:flags",
400        "//absl/log/internal:test_helpers",
401        "//absl/log/internal:test_matchers",
402        "//absl/strings",
403        "@com_google_googletest//:gtest",
404        "@com_google_googletest//:gtest_main",
405    ],
406)
407
408cc_test(
409    name = "globals_test",
410    size = "small",
411    srcs = ["globals_test.cc"],
412    copts = ABSL_TEST_COPTS,
413    linkopts = ABSL_DEFAULT_LINKOPTS,
414    deps = [
415        ":globals",
416        ":log",
417        ":scoped_mock_log",
418        "//absl/base:core_headers",
419        "//absl/base:log_severity",
420        "//absl/log/internal:globals",
421        "//absl/log/internal:test_helpers",
422        "@com_google_googletest//:gtest",
423        "@com_google_googletest//:gtest_main",
424    ],
425)
426
427cc_test(
428    name = "log_basic_test",
429    size = "small",
430    timeout = "moderate",
431    srcs = ["log_basic_test.cc"],
432    copts = ABSL_TEST_COPTS,
433    linkopts = ABSL_DEFAULT_LINKOPTS,
434    deps = [
435        ":log",
436        ":log_basic_test_impl",
437        "@com_google_googletest//:gtest",
438        "@com_google_googletest//:gtest_main",
439    ],
440)
441
442cc_library(
443    name = "log_basic_test_impl",
444    testonly = True,
445    copts = ABSL_TEST_COPTS,
446    linkopts = ABSL_DEFAULT_LINKOPTS,
447    textual_hdrs = ["log_basic_test_impl.inc"],
448    visibility = ["//visibility:private"],
449    deps = [
450        "//absl/base",
451        "//absl/base:log_severity",
452        "//absl/log:globals",
453        "//absl/log:log_entry",
454        "//absl/log:scoped_mock_log",
455        "//absl/log/internal:globals",
456        "//absl/log/internal:test_actions",
457        "//absl/log/internal:test_helpers",
458        "//absl/log/internal:test_matchers",
459        "@com_google_googletest//:gtest",
460    ],
461)
462
463cc_test(
464    name = "log_entry_test",
465    size = "small",
466    srcs = ["log_entry_test.cc"],
467    copts = ABSL_TEST_COPTS,
468    linkopts = ABSL_DEFAULT_LINKOPTS,
469    deps = [
470        ":log_entry",
471        "//absl/base:config",
472        "//absl/base:core_headers",
473        "//absl/base:log_severity",
474        "//absl/log/internal:append_truncated",
475        "//absl/log/internal:format",
476        "//absl/log/internal:test_helpers",
477        "//absl/strings",
478        "//absl/time",
479        "//absl/types:span",
480        "@com_google_googletest//:gtest",
481        "@com_google_googletest//:gtest_main",
482    ],
483)
484
485cc_test(
486    name = "log_format_test",
487    size = "small",
488    srcs = ["log_format_test.cc"],
489    copts = ABSL_TEST_COPTS,
490    linkopts = ABSL_DEFAULT_LINKOPTS,
491    deps = [
492        ":check",
493        ":log",
494        ":scoped_mock_log",
495        "//absl/log/internal:test_matchers",
496        "//absl/strings",
497        "//absl/strings:str_format",
498        "//absl/types:optional",
499        "@com_google_googletest//:gtest",
500        "@com_google_googletest//:gtest_main",
501    ],
502)
503
504cc_test(
505    name = "log_macro_hygiene_test",
506    size = "small",
507    srcs = ["log_macro_hygiene_test.cc"],
508    copts = ABSL_TEST_COPTS,
509    linkopts = ABSL_DEFAULT_LINKOPTS,
510    deps = [
511        ":log",
512        ":scoped_mock_log",
513        "//absl/base:core_headers",
514        "//absl/base:log_severity",
515        "@com_google_googletest//:gtest",
516        "@com_google_googletest//:gtest_main",
517    ],
518)
519
520cc_test(
521    name = "log_sink_test",
522    size = "medium",
523    srcs = ["log_sink_test.cc"],
524    copts = ABSL_TEST_COPTS,
525    linkopts = ABSL_DEFAULT_LINKOPTS,
526    tags = [
527        "no_test:os:ios",
528        "no_test_ios",
529        "no_test_wasm",
530    ],
531    deps = [
532        ":log",
533        ":log_sink",
534        ":log_sink_registry",
535        ":scoped_mock_log",
536        "//absl/base:core_headers",
537        "//absl/log/internal:test_actions",
538        "//absl/log/internal:test_helpers",
539        "//absl/log/internal:test_matchers",
540        "//absl/strings",
541        "@com_google_googletest//:gtest",
542        "@com_google_googletest//:gtest_main",
543    ],
544)
545
546cc_test(
547    name = "log_streamer_test",
548    size = "medium",
549    srcs = ["log_streamer_test.cc"],
550    copts = ABSL_TEST_COPTS,
551    linkopts = ABSL_DEFAULT_LINKOPTS,
552    deps = [
553        ":log",
554        ":log_streamer",
555        ":scoped_mock_log",
556        "//absl/base",
557        "//absl/base:core_headers",
558        "//absl/base:log_severity",
559        "//absl/log/internal:test_actions",
560        "//absl/log/internal:test_helpers",
561        "//absl/log/internal:test_matchers",
562        "//absl/strings",
563        "@com_google_googletest//:gtest",
564        "@com_google_googletest//:gtest_main",
565    ],
566)
567
568cc_test(
569    name = "log_modifier_methods_test",
570    size = "small",
571    srcs = ["log_modifier_methods_test.cc"],
572    copts = ABSL_TEST_COPTS,
573    linkopts = ABSL_DEFAULT_LINKOPTS,
574    deps = [
575        ":log",
576        ":log_sink",
577        ":scoped_mock_log",
578        "//absl/log/internal:test_actions",
579        "//absl/log/internal:test_helpers",
580        "//absl/log/internal:test_matchers",
581        "//absl/strings",
582        "//absl/time",
583        "@com_google_googletest//:gtest",
584        "@com_google_googletest//:gtest_main",
585    ],
586)
587
588cc_test(
589    name = "scoped_mock_log_test",
590    size = "small",
591    srcs = ["scoped_mock_log_test.cc"],
592    copts = ABSL_TEST_COPTS,
593    linkopts = ABSL_DEFAULT_LINKOPTS,
594    linkstatic = 1,
595    tags = [
596        "no_test:os:ios",
597        "no_test_ios",
598        "no_test_wasm",
599    ],
600    deps = [
601        ":globals",
602        ":log",
603        ":scoped_mock_log",
604        "//absl/base:core_headers",
605        "//absl/base:log_severity",
606        "//absl/log/internal:test_helpers",
607        "//absl/log/internal:test_matchers",
608        "//absl/memory",
609        "//absl/strings",
610        "//absl/synchronization",
611        "@com_google_googletest//:gtest",
612        "@com_google_googletest//:gtest_main",
613    ],
614)
615
616cc_test(
617    name = "stripping_test",
618    size = "small",
619    srcs = ["stripping_test.cc"],
620    copts = ABSL_TEST_COPTS,
621    linkopts = ABSL_DEFAULT_LINKOPTS,
622    # This test requires all code live in the binary (instead of shared libraries)
623    # because we test for the existence of specific literals in the binary.
624    linkstatic = 1,
625    deps = [
626        ":check",
627        ":log",
628        "//absl/base:log_severity",
629        "//absl/base:strerror",
630        "//absl/flags:program_name",
631        "//absl/log/internal:test_helpers",
632        "//absl/status",
633        "//absl/strings",
634        "//absl/strings:str_format",
635        "@com_google_googletest//:gtest",
636        "@com_google_googletest//:gtest_main",
637    ],
638)
639
640cc_test(
641    name = "structured_test",
642    size = "small",
643    srcs = ["structured_test.cc"],
644    copts = ABSL_TEST_COPTS,
645    linkopts = ABSL_DEFAULT_LINKOPTS,
646    deps = [
647        ":log",
648        ":scoped_mock_log",
649        ":structured",
650        "//absl/base:core_headers",
651        "//absl/log/internal:test_helpers",
652        "//absl/log/internal:test_matchers",
653        "@com_google_googletest//:gtest",
654        "@com_google_googletest//:gtest_main",
655    ],
656)
657
658cc_test(
659    name = "log_benchmark",
660    size = "small",
661    srcs = ["log_benchmark.cc"],
662    copts = ABSL_TEST_COPTS,
663    linkopts = ABSL_DEFAULT_LINKOPTS,
664    tags = ["benchmark"],
665    deps = [
666        ":check",
667        ":flags",
668        ":globals",
669        ":log",
670        ":log_entry",
671        ":log_sink",
672        ":log_sink_registry",
673        ":vlog_is_on",
674        "//absl/base:core_headers",
675        "//absl/base:log_severity",
676        "//absl/flags:flag",
677        "//absl/log/internal:flags",
678        "@com_github_google_benchmark//:benchmark_main",
679    ],
680)
681