• 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    hdrs = ["log_entry.h"],
156    copts = ABSL_DEFAULT_COPTS,
157    linkopts = ABSL_DEFAULT_LINKOPTS,
158    deps = [
159        "//absl/base:config",
160        "//absl/base:core_headers",
161        "//absl/base:log_severity",
162        "//absl/log/internal:config",
163        "//absl/strings",
164        "//absl/time",
165        "//absl/types:span",
166    ],
167)
168
169cc_library(
170    name = "log_sink",
171    srcs = ["log_sink.cc"],
172    hdrs = ["log_sink.h"],
173    copts = ABSL_DEFAULT_COPTS,
174    linkopts = ABSL_DEFAULT_LINKOPTS,
175    deps = [
176        ":log_entry",
177        "//absl/base:config",
178    ],
179)
180
181cc_library(
182    name = "log_sink_registry",
183    hdrs = ["log_sink_registry.h"],
184    copts = ABSL_DEFAULT_COPTS,
185    linkopts = ABSL_DEFAULT_LINKOPTS,
186    deps = [
187        ":log_sink",
188        "//absl/base:config",
189        "//absl/base:nullability",
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        "@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/base:core_headers",
237        "//absl/log/internal:structured",
238        "//absl/strings",
239    ],
240)
241
242cc_library(
243    name = "absl_vlog_is_on",
244    hdrs = ["absl_vlog_is_on.h"],
245    copts = ABSL_DEFAULT_COPTS,
246    linkopts = ABSL_DEFAULT_LINKOPTS,
247    deps = [
248        "//absl/base:config",
249        "//absl/base:core_headers",
250        "//absl/log/internal:vlog_config",
251        "//absl/strings",
252    ],
253)
254
255cc_library(
256    name = "vlog_is_on",
257    hdrs = ["vlog_is_on.h"],
258    copts = ABSL_DEFAULT_COPTS,
259    linkopts = ABSL_DEFAULT_LINKOPTS,
260    deps = [
261        ":absl_vlog_is_on",
262    ],
263)
264
265# TODO(b/200695798): run this in TAP projects with -DABSL_MAX_VLOG_VERBOSITY={-100,100}
266cc_test(
267    name = "vlog_is_on_test",
268    size = "small",
269    srcs = [
270        "vlog_is_on_test.cc",
271    ],
272    copts = ABSL_TEST_COPTS,
273    linkopts = ABSL_DEFAULT_LINKOPTS,
274    deps = [
275        ":flags",
276        ":globals",
277        ":log",
278        ":scoped_mock_log",
279        ":vlog_is_on",
280        "//absl/base:log_severity",
281        "//absl/flags:flag",
282        "//absl/types:optional",
283        "@googletest//:gtest",
284        "@googletest//:gtest_main",
285    ],
286)
287
288# Test targets
289
290cc_test(
291    name = "absl_check_test",
292    size = "small",
293    timeout = "moderate",
294    srcs = ["absl_check_test.cc"],
295    copts = ABSL_TEST_COPTS,
296    linkopts = ABSL_DEFAULT_LINKOPTS,
297    tags = [
298        "no_test:os:ios",
299        "no_test_ios",
300        "no_test_wasm",
301    ],
302    deps = [
303        ":absl_check",
304        ":check_test_impl",
305        "@googletest//:gtest",
306        "@googletest//:gtest_main",
307    ],
308)
309
310cc_test(
311    name = "absl_log_basic_test",
312    size = "small",
313    timeout = "moderate",
314    srcs = ["absl_log_basic_test.cc"],
315    copts = ABSL_TEST_COPTS,
316    linkopts = ABSL_DEFAULT_LINKOPTS,
317    deps = [
318        ":absl_log",
319        ":log_basic_test_impl",
320        "@googletest//:gtest",
321        "@googletest//:gtest_main",
322    ],
323)
324
325cc_test(
326    name = "check_test",
327    size = "small",
328    timeout = "moderate",
329    srcs = ["check_test.cc"],
330    copts = ABSL_TEST_COPTS,
331    linkopts = ABSL_DEFAULT_LINKOPTS,
332    tags = [
333        "no_test:os:ios",
334        "no_test_ios",
335        "no_test_wasm",
336    ],
337    deps = [
338        ":check",
339        ":check_test_impl",
340        "@googletest//:gtest",
341        "@googletest//:gtest_main",
342    ],
343)
344
345cc_library(
346    name = "check_test_impl",
347    testonly = True,
348    copts = ABSL_TEST_COPTS,
349    linkopts = ABSL_DEFAULT_LINKOPTS,
350    tags = [
351        "no_test:os:ios",
352        "no_test_ios",
353        "no_test_wasm",
354    ],
355    textual_hdrs = ["check_test_impl.inc"],
356    visibility = ["//visibility:private"],
357    deps = [
358        "//absl/base:config",
359        "//absl/base:core_headers",
360        "//absl/log/internal:test_helpers",
361        "//absl/status",
362        "//absl/strings",
363        "//absl/strings:string_view",
364        "@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        "@googletest//:gtest",
379        "@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        "@googletest//:gtest",
403        "@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        "@googletest//:gtest",
422        "@googletest//:gtest_main",
423    ],
424)
425
426cc_test(
427    name = "log_basic_test",
428    size = "small",
429    timeout = "moderate",
430    srcs = ["log_basic_test.cc"],
431    copts = ABSL_TEST_COPTS,
432    linkopts = ABSL_DEFAULT_LINKOPTS,
433    deps = [
434        ":log",
435        ":log_basic_test_impl",
436        "@googletest//:gtest",
437        "@googletest//:gtest_main",
438    ],
439)
440
441cc_library(
442    name = "log_basic_test_impl",
443    testonly = True,
444    copts = ABSL_TEST_COPTS,
445    linkopts = ABSL_DEFAULT_LINKOPTS,
446    textual_hdrs = ["log_basic_test_impl.inc"],
447    visibility = ["//visibility:private"],
448    deps = [
449        "//absl/base",
450        "//absl/base:log_severity",
451        "//absl/log:globals",
452        "//absl/log:log_entry",
453        "//absl/log:scoped_mock_log",
454        "//absl/log/internal:globals",
455        "//absl/log/internal:test_actions",
456        "//absl/log/internal:test_helpers",
457        "//absl/log/internal:test_matchers",
458        "@googletest//:gtest",
459    ],
460)
461
462cc_test(
463    name = "log_entry_test",
464    size = "small",
465    srcs = ["log_entry_test.cc"],
466    copts = ABSL_TEST_COPTS,
467    linkopts = ABSL_DEFAULT_LINKOPTS,
468    deps = [
469        ":log_entry",
470        "//absl/base:config",
471        "//absl/base:core_headers",
472        "//absl/base:log_severity",
473        "//absl/log/internal:append_truncated",
474        "//absl/log/internal:format",
475        "//absl/log/internal:test_helpers",
476        "//absl/strings",
477        "//absl/time",
478        "//absl/types:span",
479        "@googletest//:gtest",
480        "@googletest//:gtest_main",
481    ],
482)
483
484cc_test(
485    name = "log_format_test",
486    size = "small",
487    srcs = ["log_format_test.cc"],
488    copts = ABSL_TEST_COPTS,
489    linkopts = ABSL_DEFAULT_LINKOPTS,
490    deps = [
491        ":check",
492        ":log",
493        ":scoped_mock_log",
494        "//absl/base:config",
495        "//absl/log/internal:test_matchers",
496        "//absl/strings",
497        "//absl/strings:str_format",
498        "//absl/types:optional",
499        "@googletest//:gtest",
500        "@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        "@googletest//:gtest",
516        "@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        "@googletest//:gtest",
542        "@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        "@googletest//:gtest",
564        "@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        "@googletest//:gtest",
584        "@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        "@googletest//:gtest",
612        "@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        "@googletest//:gtest",
636        "@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        "@googletest//:gtest",
654        "@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        "@google_benchmark//:benchmark_main",
679    ],
680)
681