xref: /aosp_15_r20/external/cronet/third_party/abseil-cpp/absl/log/BUILD.bazel (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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/log/internal:log_sink_set",
191    ],
192)
193
194cc_library(
195    name = "log_streamer",
196    hdrs = ["log_streamer.h"],
197    copts = ABSL_DEFAULT_COPTS,
198    linkopts = ABSL_DEFAULT_LINKOPTS,
199    deps = [
200        ":absl_log",
201        "//absl/base:config",
202        "//absl/base:log_severity",
203        "//absl/strings",
204        "//absl/strings:internal",
205        "//absl/types:optional",
206        "//absl/utility",
207    ],
208)
209
210cc_library(
211    name = "scoped_mock_log",
212    testonly = True,
213    srcs = ["scoped_mock_log.cc"],
214    hdrs = ["scoped_mock_log.h"],
215    copts = ABSL_DEFAULT_COPTS,
216    linkopts = ABSL_DEFAULT_LINKOPTS,
217    deps = [
218        ":log_entry",
219        ":log_sink",
220        ":log_sink_registry",
221        "//absl/base:config",
222        "//absl/base:log_severity",
223        "//absl/base:raw_logging_internal",
224        "//absl/strings",
225        "@com_google_googletest//:gtest",
226    ],
227)
228
229cc_library(
230    name = "structured",
231    hdrs = ["structured.h"],
232    copts = ABSL_DEFAULT_COPTS,
233    linkopts = ABSL_DEFAULT_LINKOPTS,
234    deps = [
235        "//absl/base:config",
236        "//absl/log/internal:structured",
237        "//absl/strings",
238    ],
239)
240
241cc_library(
242    name = "absl_vlog_is_on",
243    hdrs = ["absl_vlog_is_on.h"],
244    copts = ABSL_DEFAULT_COPTS,
245    linkopts = ABSL_DEFAULT_LINKOPTS,
246    deps = [
247        "//absl/base:config",
248        "//absl/base:core_headers",
249        "//absl/log/internal:vlog_config",
250        "//absl/strings",
251    ],
252)
253
254cc_library(
255    name = "vlog_is_on",
256    hdrs = ["vlog_is_on.h"],
257    copts = ABSL_DEFAULT_COPTS,
258    linkopts = ABSL_DEFAULT_LINKOPTS,
259    deps = [
260        ":absl_vlog_is_on",
261    ],
262)
263
264# TODO(b/200695798): run this in TAP projects with -DABSL_MAX_VLOG_VERBOSITY={-100,100}
265cc_test(
266    name = "vlog_is_on_test",
267    size = "small",
268    srcs = [
269        "vlog_is_on_test.cc",
270    ],
271    copts = ABSL_TEST_COPTS,
272    linkopts = ABSL_DEFAULT_LINKOPTS,
273    deps = [
274        ":flags",
275        ":globals",
276        ":log",
277        ":scoped_mock_log",
278        ":vlog_is_on",
279        "//absl/base:log_severity",
280        "//absl/flags:flag",
281        "//absl/types:optional",
282        "@com_google_googletest//:gtest",
283        "@com_google_googletest//:gtest_main",
284    ],
285)
286
287# Test targets
288
289cc_test(
290    name = "absl_check_test",
291    size = "small",
292    timeout = "moderate",
293    srcs = ["absl_check_test.cc"],
294    copts = ABSL_TEST_COPTS,
295    linkopts = ABSL_DEFAULT_LINKOPTS,
296    tags = [
297        "no_test:os:ios",
298        "no_test_ios",
299        "no_test_wasm",
300    ],
301    deps = [
302        ":absl_check",
303        ":check_test_impl",
304        "@com_google_googletest//:gtest",
305        "@com_google_googletest//:gtest_main",
306    ],
307)
308
309cc_test(
310    name = "absl_log_basic_test",
311    size = "small",
312    srcs = ["absl_log_basic_test.cc"],
313    copts = ABSL_TEST_COPTS,
314    linkopts = ABSL_DEFAULT_LINKOPTS,
315    deps = [
316        ":absl_log",
317        ":log_basic_test_impl",
318        "@com_google_googletest//:gtest",
319        "@com_google_googletest//:gtest_main",
320    ],
321)
322
323cc_test(
324    name = "check_test",
325    size = "small",
326    timeout = "moderate",
327    srcs = ["check_test.cc"],
328    copts = ABSL_TEST_COPTS,
329    linkopts = ABSL_DEFAULT_LINKOPTS,
330    tags = [
331        "no_test:os:ios",
332        "no_test_ios",
333        "no_test_wasm",
334    ],
335    deps = [
336        ":check",
337        ":check_test_impl",
338        "@com_google_googletest//:gtest",
339        "@com_google_googletest//:gtest_main",
340    ],
341)
342
343cc_library(
344    name = "check_test_impl",
345    testonly = True,
346    copts = ABSL_TEST_COPTS,
347    linkopts = ABSL_DEFAULT_LINKOPTS,
348    tags = [
349        "no_test:os:ios",
350        "no_test_ios",
351        "no_test_wasm",
352    ],
353    textual_hdrs = ["check_test_impl.inc"],
354    visibility = ["//visibility:private"],
355    deps = [
356        "//absl/base:config",
357        "//absl/base:core_headers",
358        "//absl/log/internal:test_helpers",
359        "//absl/status",
360        "@com_google_googletest//:gtest",
361    ],
362)
363
364cc_test(
365    name = "die_if_null_test",
366    size = "small",
367    srcs = ["die_if_null_test.cc"],
368    copts = ABSL_TEST_COPTS,
369    linkopts = ABSL_DEFAULT_LINKOPTS,
370    deps = [
371        ":die_if_null",
372        "//absl/base:core_headers",
373        "//absl/log/internal:test_helpers",
374        "@com_google_googletest//:gtest",
375        "@com_google_googletest//:gtest_main",
376    ],
377)
378
379cc_test(
380    name = "flags_test",
381    size = "small",
382    srcs = ["flags_test.cc"],
383    copts = ABSL_TEST_COPTS,
384    linkopts = ABSL_DEFAULT_LINKOPTS,
385    deps = [
386        ":flags",
387        ":globals",
388        ":log",
389        ":scoped_mock_log",
390        "//absl/base:core_headers",
391        "//absl/base:log_severity",
392        "//absl/flags:flag",
393        "//absl/flags:reflection",
394        "//absl/log/internal:flags",
395        "//absl/log/internal:test_helpers",
396        "//absl/log/internal:test_matchers",
397        "//absl/strings",
398        "@com_google_googletest//:gtest",
399        "@com_google_googletest//:gtest_main",
400    ],
401)
402
403cc_test(
404    name = "globals_test",
405    size = "small",
406    srcs = ["globals_test.cc"],
407    copts = ABSL_TEST_COPTS,
408    linkopts = ABSL_DEFAULT_LINKOPTS,
409    deps = [
410        ":globals",
411        ":log",
412        ":scoped_mock_log",
413        "//absl/base:core_headers",
414        "//absl/base:log_severity",
415        "//absl/log/internal:globals",
416        "//absl/log/internal:test_helpers",
417        "@com_google_googletest//:gtest",
418        "@com_google_googletest//:gtest_main",
419    ],
420)
421
422cc_test(
423    name = "log_basic_test",
424    size = "small",
425    srcs = ["log_basic_test.cc"],
426    copts = ABSL_TEST_COPTS,
427    linkopts = ABSL_DEFAULT_LINKOPTS,
428    deps = [
429        ":log",
430        ":log_basic_test_impl",
431        "@com_google_googletest//:gtest",
432        "@com_google_googletest//:gtest_main",
433    ],
434)
435
436cc_library(
437    name = "log_basic_test_impl",
438    testonly = True,
439    copts = ABSL_TEST_COPTS,
440    linkopts = ABSL_DEFAULT_LINKOPTS,
441    textual_hdrs = ["log_basic_test_impl.inc"],
442    visibility = ["//visibility:private"],
443    deps = [
444        "//absl/base",
445        "//absl/base:log_severity",
446        "//absl/log:globals",
447        "//absl/log:log_entry",
448        "//absl/log:scoped_mock_log",
449        "//absl/log/internal:globals",
450        "//absl/log/internal:test_actions",
451        "//absl/log/internal:test_helpers",
452        "//absl/log/internal:test_matchers",
453        "@com_google_googletest//:gtest",
454    ],
455)
456
457cc_test(
458    name = "log_entry_test",
459    size = "small",
460    srcs = ["log_entry_test.cc"],
461    copts = ABSL_TEST_COPTS,
462    linkopts = ABSL_DEFAULT_LINKOPTS,
463    deps = [
464        ":log_entry",
465        "//absl/base:config",
466        "//absl/base:core_headers",
467        "//absl/base:log_severity",
468        "//absl/log/internal:append_truncated",
469        "//absl/log/internal:format",
470        "//absl/log/internal:test_helpers",
471        "//absl/strings",
472        "//absl/time",
473        "//absl/types:span",
474        "@com_google_googletest//:gtest",
475        "@com_google_googletest//:gtest_main",
476    ],
477)
478
479cc_test(
480    name = "log_format_test",
481    size = "small",
482    srcs = ["log_format_test.cc"],
483    copts = ABSL_TEST_COPTS,
484    linkopts = ABSL_DEFAULT_LINKOPTS,
485    deps = [
486        ":check",
487        ":log",
488        ":scoped_mock_log",
489        "//absl/log/internal:test_matchers",
490        "//absl/strings",
491        "//absl/strings:str_format",
492        "//absl/types:optional",
493        "@com_google_googletest//:gtest",
494        "@com_google_googletest//:gtest_main",
495    ],
496)
497
498cc_test(
499    name = "log_macro_hygiene_test",
500    size = "small",
501    srcs = ["log_macro_hygiene_test.cc"],
502    copts = ABSL_TEST_COPTS,
503    linkopts = ABSL_DEFAULT_LINKOPTS,
504    deps = [
505        ":log",
506        ":scoped_mock_log",
507        "//absl/base:core_headers",
508        "//absl/base:log_severity",
509        "@com_google_googletest//:gtest",
510        "@com_google_googletest//:gtest_main",
511    ],
512)
513
514cc_test(
515    name = "log_sink_test",
516    size = "medium",
517    srcs = ["log_sink_test.cc"],
518    copts = ABSL_TEST_COPTS,
519    linkopts = ABSL_DEFAULT_LINKOPTS,
520    tags = [
521        "no_test:os:ios",
522        "no_test_ios",
523        "no_test_wasm",
524    ],
525    deps = [
526        ":log",
527        ":log_sink",
528        ":log_sink_registry",
529        ":scoped_mock_log",
530        "//absl/base:core_headers",
531        "//absl/log/internal:test_actions",
532        "//absl/log/internal:test_helpers",
533        "//absl/log/internal:test_matchers",
534        "//absl/strings",
535        "@com_google_googletest//:gtest",
536        "@com_google_googletest//:gtest_main",
537    ],
538)
539
540cc_test(
541    name = "log_streamer_test",
542    size = "medium",
543    srcs = ["log_streamer_test.cc"],
544    copts = ABSL_TEST_COPTS,
545    linkopts = ABSL_DEFAULT_LINKOPTS,
546    deps = [
547        ":log",
548        ":log_streamer",
549        ":scoped_mock_log",
550        "//absl/base",
551        "//absl/base:core_headers",
552        "//absl/base:log_severity",
553        "//absl/log/internal:test_actions",
554        "//absl/log/internal:test_helpers",
555        "//absl/log/internal:test_matchers",
556        "//absl/strings",
557        "@com_google_googletest//:gtest",
558        "@com_google_googletest//:gtest_main",
559    ],
560)
561
562cc_test(
563    name = "log_modifier_methods_test",
564    size = "small",
565    srcs = ["log_modifier_methods_test.cc"],
566    copts = ABSL_TEST_COPTS,
567    linkopts = ABSL_DEFAULT_LINKOPTS,
568    deps = [
569        ":log",
570        ":log_sink",
571        ":scoped_mock_log",
572        "//absl/log/internal:test_actions",
573        "//absl/log/internal:test_helpers",
574        "//absl/log/internal:test_matchers",
575        "//absl/strings",
576        "//absl/time",
577        "@com_google_googletest//:gtest",
578        "@com_google_googletest//:gtest_main",
579    ],
580)
581
582cc_test(
583    name = "scoped_mock_log_test",
584    size = "small",
585    srcs = ["scoped_mock_log_test.cc"],
586    copts = ABSL_TEST_COPTS,
587    linkopts = ABSL_DEFAULT_LINKOPTS,
588    linkstatic = 1,
589    tags = [
590        "no_test:os:ios",
591        "no_test_ios",
592        "no_test_wasm",
593    ],
594    deps = [
595        ":globals",
596        ":log",
597        ":scoped_mock_log",
598        "//absl/base:core_headers",
599        "//absl/base:log_severity",
600        "//absl/log/internal:test_helpers",
601        "//absl/log/internal:test_matchers",
602        "//absl/memory",
603        "//absl/strings",
604        "//absl/synchronization",
605        "@com_google_googletest//:gtest",
606        "@com_google_googletest//:gtest_main",
607    ],
608)
609
610cc_test(
611    name = "stripping_test",
612    size = "small",
613    srcs = ["stripping_test.cc"],
614    copts = ABSL_TEST_COPTS,
615    linkopts = ABSL_DEFAULT_LINKOPTS,
616    # This test requires all code live in the binary (instead of shared libraries)
617    # because we test for the existence of specific literals in the binary.
618    linkstatic = 1,
619    deps = [
620        ":check",
621        ":log",
622        "//absl/base:log_severity",
623        "//absl/base:strerror",
624        "//absl/flags:program_name",
625        "//absl/log/internal:test_helpers",
626        "//absl/status",
627        "//absl/strings",
628        "//absl/strings:str_format",
629        "@com_google_googletest//:gtest",
630        "@com_google_googletest//:gtest_main",
631    ],
632)
633
634cc_test(
635    name = "structured_test",
636    size = "small",
637    srcs = ["structured_test.cc"],
638    copts = ABSL_TEST_COPTS,
639    linkopts = ABSL_DEFAULT_LINKOPTS,
640    deps = [
641        ":log",
642        ":scoped_mock_log",
643        ":structured",
644        "//absl/base:core_headers",
645        "//absl/log/internal:test_helpers",
646        "//absl/log/internal:test_matchers",
647        "@com_google_googletest//:gtest",
648        "@com_google_googletest//:gtest_main",
649    ],
650)
651
652cc_test(
653    name = "log_benchmark",
654    size = "small",
655    srcs = ["log_benchmark.cc"],
656    copts = ABSL_TEST_COPTS,
657    linkopts = ABSL_DEFAULT_LINKOPTS,
658    tags = ["benchmark"],
659    deps = [
660        ":check",
661        ":flags",
662        ":globals",
663        ":log",
664        ":log_entry",
665        ":log_sink",
666        ":log_sink_registry",
667        "//absl/base:core_headers",
668        "//absl/base:log_severity",
669        "//absl/flags:flag",
670        "//absl/log/internal:flags",
671        "@com_github_google_benchmark//:benchmark_main",
672    ],
673)
674