xref: /aosp_15_r20/external/abseil-cpp/absl/log/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
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        "//absl/strings",
361        "//absl/strings:string_view",
362        "@com_google_googletest//:gtest",
363    ],
364)
365
366cc_test(
367    name = "die_if_null_test",
368    size = "small",
369    srcs = ["die_if_null_test.cc"],
370    copts = ABSL_TEST_COPTS,
371    linkopts = ABSL_DEFAULT_LINKOPTS,
372    deps = [
373        ":die_if_null",
374        "//absl/base:core_headers",
375        "//absl/log/internal:test_helpers",
376        "@com_google_googletest//:gtest",
377        "@com_google_googletest//:gtest_main",
378    ],
379)
380
381cc_test(
382    name = "flags_test",
383    size = "small",
384    srcs = ["flags_test.cc"],
385    copts = ABSL_TEST_COPTS,
386    linkopts = ABSL_DEFAULT_LINKOPTS,
387    deps = [
388        ":flags",
389        ":globals",
390        ":log",
391        ":scoped_mock_log",
392        "//absl/base:core_headers",
393        "//absl/base:log_severity",
394        "//absl/flags:flag",
395        "//absl/flags:reflection",
396        "//absl/log/internal:flags",
397        "//absl/log/internal:test_helpers",
398        "//absl/log/internal:test_matchers",
399        "//absl/strings",
400        "@com_google_googletest//:gtest",
401        "@com_google_googletest//:gtest_main",
402    ],
403)
404
405cc_test(
406    name = "globals_test",
407    size = "small",
408    srcs = ["globals_test.cc"],
409    copts = ABSL_TEST_COPTS,
410    linkopts = ABSL_DEFAULT_LINKOPTS,
411    deps = [
412        ":globals",
413        ":log",
414        ":scoped_mock_log",
415        "//absl/base:core_headers",
416        "//absl/base:log_severity",
417        "//absl/log/internal:globals",
418        "//absl/log/internal:test_helpers",
419        "@com_google_googletest//:gtest",
420        "@com_google_googletest//:gtest_main",
421    ],
422)
423
424cc_test(
425    name = "log_basic_test",
426    size = "small",
427    srcs = ["log_basic_test.cc"],
428    copts = ABSL_TEST_COPTS,
429    linkopts = ABSL_DEFAULT_LINKOPTS,
430    deps = [
431        ":log",
432        ":log_basic_test_impl",
433        "@com_google_googletest//:gtest",
434        "@com_google_googletest//:gtest_main",
435    ],
436)
437
438cc_library(
439    name = "log_basic_test_impl",
440    testonly = True,
441    copts = ABSL_TEST_COPTS,
442    linkopts = ABSL_DEFAULT_LINKOPTS,
443    textual_hdrs = ["log_basic_test_impl.inc"],
444    visibility = ["//visibility:private"],
445    deps = [
446        "//absl/base",
447        "//absl/base:log_severity",
448        "//absl/log:globals",
449        "//absl/log:log_entry",
450        "//absl/log:scoped_mock_log",
451        "//absl/log/internal:globals",
452        "//absl/log/internal:test_actions",
453        "//absl/log/internal:test_helpers",
454        "//absl/log/internal:test_matchers",
455        "@com_google_googletest//:gtest",
456    ],
457)
458
459cc_test(
460    name = "log_entry_test",
461    size = "small",
462    srcs = ["log_entry_test.cc"],
463    copts = ABSL_TEST_COPTS,
464    linkopts = ABSL_DEFAULT_LINKOPTS,
465    deps = [
466        ":log_entry",
467        "//absl/base:config",
468        "//absl/base:core_headers",
469        "//absl/base:log_severity",
470        "//absl/log/internal:append_truncated",
471        "//absl/log/internal:format",
472        "//absl/log/internal:test_helpers",
473        "//absl/strings",
474        "//absl/time",
475        "//absl/types:span",
476        "@com_google_googletest//:gtest",
477        "@com_google_googletest//:gtest_main",
478    ],
479)
480
481cc_test(
482    name = "log_format_test",
483    size = "small",
484    srcs = ["log_format_test.cc"],
485    copts = ABSL_TEST_COPTS,
486    linkopts = ABSL_DEFAULT_LINKOPTS,
487    deps = [
488        ":check",
489        ":log",
490        ":scoped_mock_log",
491        "//absl/log/internal:test_matchers",
492        "//absl/strings",
493        "//absl/strings:str_format",
494        "//absl/types:optional",
495        "@com_google_googletest//:gtest",
496        "@com_google_googletest//:gtest_main",
497    ],
498)
499
500cc_test(
501    name = "log_macro_hygiene_test",
502    size = "small",
503    srcs = ["log_macro_hygiene_test.cc"],
504    copts = ABSL_TEST_COPTS,
505    linkopts = ABSL_DEFAULT_LINKOPTS,
506    deps = [
507        ":log",
508        ":scoped_mock_log",
509        "//absl/base:core_headers",
510        "//absl/base:log_severity",
511        "@com_google_googletest//:gtest",
512        "@com_google_googletest//:gtest_main",
513    ],
514)
515
516cc_test(
517    name = "log_sink_test",
518    size = "medium",
519    srcs = ["log_sink_test.cc"],
520    copts = ABSL_TEST_COPTS,
521    linkopts = ABSL_DEFAULT_LINKOPTS,
522    tags = [
523        "no_test:os:ios",
524        "no_test_ios",
525        "no_test_wasm",
526    ],
527    deps = [
528        ":log",
529        ":log_sink",
530        ":log_sink_registry",
531        ":scoped_mock_log",
532        "//absl/base:core_headers",
533        "//absl/log/internal:test_actions",
534        "//absl/log/internal:test_helpers",
535        "//absl/log/internal:test_matchers",
536        "//absl/strings",
537        "@com_google_googletest//:gtest",
538        "@com_google_googletest//:gtest_main",
539    ],
540)
541
542cc_test(
543    name = "log_streamer_test",
544    size = "medium",
545    srcs = ["log_streamer_test.cc"],
546    copts = ABSL_TEST_COPTS,
547    linkopts = ABSL_DEFAULT_LINKOPTS,
548    deps = [
549        ":log",
550        ":log_streamer",
551        ":scoped_mock_log",
552        "//absl/base",
553        "//absl/base:core_headers",
554        "//absl/base:log_severity",
555        "//absl/log/internal:test_actions",
556        "//absl/log/internal:test_helpers",
557        "//absl/log/internal:test_matchers",
558        "//absl/strings",
559        "@com_google_googletest//:gtest",
560        "@com_google_googletest//:gtest_main",
561    ],
562)
563
564cc_test(
565    name = "log_modifier_methods_test",
566    size = "small",
567    srcs = ["log_modifier_methods_test.cc"],
568    copts = ABSL_TEST_COPTS,
569    linkopts = ABSL_DEFAULT_LINKOPTS,
570    deps = [
571        ":log",
572        ":log_sink",
573        ":scoped_mock_log",
574        "//absl/log/internal:test_actions",
575        "//absl/log/internal:test_helpers",
576        "//absl/log/internal:test_matchers",
577        "//absl/strings",
578        "//absl/time",
579        "@com_google_googletest//:gtest",
580        "@com_google_googletest//:gtest_main",
581    ],
582)
583
584cc_test(
585    name = "scoped_mock_log_test",
586    size = "small",
587    srcs = ["scoped_mock_log_test.cc"],
588    copts = ABSL_TEST_COPTS,
589    linkopts = ABSL_DEFAULT_LINKOPTS,
590    linkstatic = 1,
591    tags = [
592        "no_test:os:ios",
593        "no_test_ios",
594        "no_test_wasm",
595    ],
596    deps = [
597        ":globals",
598        ":log",
599        ":scoped_mock_log",
600        "//absl/base:core_headers",
601        "//absl/base:log_severity",
602        "//absl/log/internal:test_helpers",
603        "//absl/log/internal:test_matchers",
604        "//absl/memory",
605        "//absl/strings",
606        "//absl/synchronization",
607        "@com_google_googletest//:gtest",
608        "@com_google_googletest//:gtest_main",
609    ],
610)
611
612cc_test(
613    name = "stripping_test",
614    size = "small",
615    srcs = ["stripping_test.cc"],
616    copts = ABSL_TEST_COPTS,
617    linkopts = ABSL_DEFAULT_LINKOPTS,
618    # This test requires all code live in the binary (instead of shared libraries)
619    # because we test for the existence of specific literals in the binary.
620    linkstatic = 1,
621    deps = [
622        ":check",
623        ":log",
624        "//absl/base:log_severity",
625        "//absl/base:strerror",
626        "//absl/flags:program_name",
627        "//absl/log/internal:test_helpers",
628        "//absl/status",
629        "//absl/strings",
630        "//absl/strings:str_format",
631        "@com_google_googletest//:gtest",
632        "@com_google_googletest//:gtest_main",
633    ],
634)
635
636cc_test(
637    name = "structured_test",
638    size = "small",
639    srcs = ["structured_test.cc"],
640    copts = ABSL_TEST_COPTS,
641    linkopts = ABSL_DEFAULT_LINKOPTS,
642    deps = [
643        ":log",
644        ":scoped_mock_log",
645        ":structured",
646        "//absl/base:core_headers",
647        "//absl/log/internal:test_helpers",
648        "//absl/log/internal:test_matchers",
649        "@com_google_googletest//:gtest",
650        "@com_google_googletest//:gtest_main",
651    ],
652)
653
654cc_test(
655    name = "log_benchmark",
656    size = "small",
657    srcs = ["log_benchmark.cc"],
658    copts = ABSL_TEST_COPTS,
659    linkopts = ABSL_DEFAULT_LINKOPTS,
660    tags = ["benchmark"],
661    deps = [
662        ":check",
663        ":flags",
664        ":globals",
665        ":log",
666        ":log_entry",
667        ":log_sink",
668        ":log_sink_registry",
669        ":vlog_is_on",
670        "//absl/base:core_headers",
671        "//absl/base:log_severity",
672        "//absl/flags:flag",
673        "//absl/log/internal:flags",
674        "@com_github_google_benchmark//:benchmark_main",
675    ],
676)
677