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