• 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/strings",
102    ],
103    # Binaries which do not access these flags from C++ still want this library linked in.
104    alwayslink = True,
105)
106
107cc_library(
108    name = "globals",
109    srcs = ["globals.cc"],
110    hdrs = ["globals.h"],
111    copts = ABSL_DEFAULT_COPTS,
112    linkopts = ABSL_DEFAULT_LINKOPTS,
113    visibility = ["//visibility:public"],
114    deps = [
115        "//absl/base:atomic_hook",
116        "//absl/base:config",
117        "//absl/base:core_headers",
118        "//absl/base:log_severity",
119        "//absl/base:raw_logging_internal",
120        "//absl/hash",
121        "//absl/strings",
122    ],
123)
124
125cc_library(
126    name = "initialize",
127    srcs = ["initialize.cc"],
128    hdrs = ["initialize.h"],
129    copts = ABSL_DEFAULT_COPTS,
130    linkopts = ABSL_DEFAULT_LINKOPTS,
131    visibility = ["//visibility:public"],
132    deps = [
133        ":globals",
134        "//absl/base:config",
135        "//absl/log/internal:globals",
136        "//absl/time",
137    ],
138)
139
140cc_library(
141    name = "log",
142    hdrs = ["log.h"],
143    copts = ABSL_DEFAULT_COPTS,
144    linkopts = ABSL_DEFAULT_LINKOPTS,
145    deps = [
146        "//absl/log/internal:log_impl",
147    ],
148)
149
150cc_library(
151    name = "log_entry",
152    srcs = ["log_entry.cc"],
153    hdrs = ["log_entry.h"],
154    copts = ABSL_DEFAULT_COPTS,
155    linkopts = ABSL_DEFAULT_LINKOPTS,
156    deps = [
157        "//absl/base:config",
158        "//absl/base:core_headers",
159        "//absl/base:log_severity",
160        "//absl/log/internal:config",
161        "//absl/strings",
162        "//absl/time",
163        "//absl/types:span",
164    ],
165)
166
167cc_library(
168    name = "log_sink",
169    srcs = ["log_sink.cc"],
170    hdrs = ["log_sink.h"],
171    copts = ABSL_DEFAULT_COPTS,
172    linkopts = ABSL_DEFAULT_LINKOPTS,
173    deps = [
174        ":log_entry",
175        "//absl/base:config",
176    ],
177)
178
179cc_library(
180    name = "log_sink_registry",
181    hdrs = ["log_sink_registry.h"],
182    copts = ABSL_DEFAULT_COPTS,
183    linkopts = ABSL_DEFAULT_LINKOPTS,
184    deps = [
185        ":log_sink",
186        "//absl/base:config",
187        "//absl/log/internal:log_sink_set",
188    ],
189)
190
191cc_library(
192    name = "log_streamer",
193    hdrs = ["log_streamer.h"],
194    copts = ABSL_DEFAULT_COPTS,
195    linkopts = ABSL_DEFAULT_LINKOPTS,
196    deps = [
197        ":absl_log",
198        "//absl/base:config",
199        "//absl/base:log_severity",
200        "//absl/strings",
201        "//absl/strings:internal",
202        "//absl/types:optional",
203        "//absl/utility",
204    ],
205)
206
207cc_library(
208    name = "scoped_mock_log",
209    testonly = True,
210    srcs = ["scoped_mock_log.cc"],
211    hdrs = ["scoped_mock_log.h"],
212    copts = ABSL_DEFAULT_COPTS,
213    linkopts = ABSL_DEFAULT_LINKOPTS,
214    deps = [
215        ":log_entry",
216        ":log_sink",
217        ":log_sink_registry",
218        "//absl/base:config",
219        "//absl/base:log_severity",
220        "//absl/base:raw_logging_internal",
221        "//absl/strings",
222        "@com_google_googletest//:gtest",
223    ],
224)
225
226cc_library(
227    name = "structured",
228    hdrs = ["structured.h"],
229    copts = ABSL_DEFAULT_COPTS,
230    linkopts = ABSL_DEFAULT_LINKOPTS,
231    deps = [
232        "//absl/base:config",
233        "//absl/log/internal:structured",
234        "//absl/strings",
235    ],
236)
237
238# Test targets
239
240cc_test(
241    name = "absl_check_test",
242    size = "small",
243    srcs = ["absl_check_test.cc"],
244    copts = ABSL_TEST_COPTS,
245    linkopts = ABSL_DEFAULT_LINKOPTS,
246    tags = [
247        "no_test:os:ios",
248        "no_test_ios",
249        "no_test_wasm",
250    ],
251    deps = [
252        ":absl_check",
253        ":check_test_impl",
254        "@com_google_googletest//:gtest",
255        "@com_google_googletest//:gtest_main",
256    ],
257)
258
259cc_test(
260    name = "absl_log_basic_test",
261    size = "small",
262    srcs = ["absl_log_basic_test.cc"],
263    copts = ABSL_TEST_COPTS,
264    linkopts = ABSL_DEFAULT_LINKOPTS,
265    deps = [
266        ":absl_log",
267        ":log_basic_test_impl",
268        "@com_google_googletest//:gtest",
269        "@com_google_googletest//:gtest_main",
270    ],
271)
272
273cc_test(
274    name = "check_test",
275    size = "small",
276    srcs = ["check_test.cc"],
277    copts = ABSL_TEST_COPTS,
278    linkopts = ABSL_DEFAULT_LINKOPTS,
279    tags = [
280        "no_test:os:ios",
281        "no_test_ios",
282        "no_test_wasm",
283    ],
284    deps = [
285        ":check",
286        ":check_test_impl",
287        "@com_google_googletest//:gtest",
288        "@com_google_googletest//:gtest_main",
289    ],
290)
291
292cc_library(
293    name = "check_test_impl",
294    testonly = True,
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    textual_hdrs = ["check_test_impl.inc"],
303    visibility = ["//visibility:private"],
304    deps = [
305        "//absl/base:config",
306        "//absl/base:core_headers",
307        "//absl/log/internal:test_helpers",
308        "//absl/status",
309        "@com_google_googletest//:gtest",
310    ],
311)
312
313cc_test(
314    name = "die_if_null_test",
315    size = "small",
316    srcs = ["die_if_null_test.cc"],
317    copts = ABSL_TEST_COPTS,
318    linkopts = ABSL_DEFAULT_LINKOPTS,
319    deps = [
320        ":die_if_null",
321        "//absl/base:core_headers",
322        "//absl/log/internal:test_helpers",
323        "@com_google_googletest//:gtest",
324        "@com_google_googletest//:gtest_main",
325    ],
326)
327
328cc_test(
329    name = "flags_test",
330    size = "small",
331    srcs = ["flags_test.cc"],
332    copts = ABSL_TEST_COPTS,
333    linkopts = ABSL_DEFAULT_LINKOPTS,
334    deps = [
335        ":flags",
336        ":globals",
337        ":log",
338        ":scoped_mock_log",
339        "//absl/base:core_headers",
340        "//absl/base:log_severity",
341        "//absl/flags:flag",
342        "//absl/flags:reflection",
343        "//absl/log/internal:flags",
344        "//absl/log/internal:test_helpers",
345        "//absl/log/internal:test_matchers",
346        "//absl/strings",
347        "@com_google_googletest//:gtest",
348        "@com_google_googletest//:gtest_main",
349    ],
350)
351
352cc_test(
353    name = "globals_test",
354    size = "small",
355    srcs = ["globals_test.cc"],
356    copts = ABSL_TEST_COPTS,
357    linkopts = ABSL_DEFAULT_LINKOPTS,
358    deps = [
359        ":globals",
360        ":log",
361        ":scoped_mock_log",
362        "//absl/base:core_headers",
363        "//absl/base:log_severity",
364        "//absl/log/internal:globals",
365        "//absl/log/internal:test_helpers",
366        "@com_google_googletest//:gtest",
367        "@com_google_googletest//:gtest_main",
368    ],
369)
370
371cc_test(
372    name = "log_basic_test",
373    size = "small",
374    srcs = ["log_basic_test.cc"],
375    copts = ABSL_TEST_COPTS,
376    linkopts = ABSL_DEFAULT_LINKOPTS,
377    deps = [
378        ":log",
379        ":log_basic_test_impl",
380        "@com_google_googletest//:gtest",
381        "@com_google_googletest//:gtest_main",
382    ],
383)
384
385cc_library(
386    name = "log_basic_test_impl",
387    testonly = True,
388    copts = ABSL_TEST_COPTS,
389    linkopts = ABSL_DEFAULT_LINKOPTS,
390    textual_hdrs = ["log_basic_test_impl.inc"],
391    visibility = ["//visibility:private"],
392    deps = [
393        "//absl/base",
394        "//absl/base:log_severity",
395        "//absl/log:globals",
396        "//absl/log:log_entry",
397        "//absl/log:scoped_mock_log",
398        "//absl/log/internal:test_actions",
399        "//absl/log/internal:test_helpers",
400        "//absl/log/internal:test_matchers",
401        "@com_google_googletest//:gtest",
402    ],
403)
404
405cc_test(
406    name = "log_entry_test",
407    size = "small",
408    srcs = ["log_entry_test.cc"],
409    copts = ABSL_TEST_COPTS,
410    linkopts = ABSL_DEFAULT_LINKOPTS,
411    deps = [
412        ":log_entry",
413        "//absl/base:config",
414        "//absl/base:core_headers",
415        "//absl/base:log_severity",
416        "//absl/log/internal:append_truncated",
417        "//absl/log/internal:format",
418        "//absl/log/internal:test_helpers",
419        "//absl/strings",
420        "//absl/time",
421        "//absl/types:span",
422        "@com_google_googletest//:gtest",
423        "@com_google_googletest//:gtest_main",
424    ],
425)
426
427cc_test(
428    name = "log_format_test",
429    size = "small",
430    srcs = ["log_format_test.cc"],
431    copts = ABSL_TEST_COPTS,
432    linkopts = ABSL_DEFAULT_LINKOPTS,
433    deps = [
434        ":check",
435        ":log",
436        ":scoped_mock_log",
437        "//absl/log/internal:test_matchers",
438        "//absl/strings",
439        "//absl/strings:str_format",
440        "//absl/types:optional",
441        "@com_google_googletest//:gtest",
442        "@com_google_googletest//:gtest_main",
443    ],
444)
445
446cc_test(
447    name = "log_macro_hygiene_test",
448    size = "small",
449    srcs = ["log_macro_hygiene_test.cc"],
450    copts = ABSL_TEST_COPTS,
451    linkopts = ABSL_DEFAULT_LINKOPTS,
452    deps = [
453        ":log",
454        ":scoped_mock_log",
455        "//absl/base:core_headers",
456        "//absl/base:log_severity",
457        "@com_google_googletest//:gtest",
458        "@com_google_googletest//:gtest_main",
459    ],
460)
461
462cc_test(
463    name = "log_sink_test",
464    size = "medium",
465    srcs = ["log_sink_test.cc"],
466    copts = ABSL_TEST_COPTS,
467    linkopts = ABSL_DEFAULT_LINKOPTS,
468    tags = [
469        "no_test:os:ios",
470        "no_test_ios",
471        "no_test_wasm",
472    ],
473    deps = [
474        ":log",
475        ":log_sink",
476        ":log_sink_registry",
477        ":scoped_mock_log",
478        "//absl/base:core_headers",
479        "//absl/log/internal:test_actions",
480        "//absl/log/internal:test_helpers",
481        "//absl/log/internal:test_matchers",
482        "//absl/strings",
483        "@com_google_googletest//:gtest",
484        "@com_google_googletest//:gtest_main",
485    ],
486)
487
488cc_test(
489    name = "log_streamer_test",
490    size = "medium",
491    srcs = ["log_streamer_test.cc"],
492    copts = ABSL_TEST_COPTS,
493    linkopts = ABSL_DEFAULT_LINKOPTS,
494    deps = [
495        ":log",
496        ":log_streamer",
497        ":scoped_mock_log",
498        "//absl/base",
499        "//absl/base:core_headers",
500        "//absl/base:log_severity",
501        "//absl/log/internal:test_actions",
502        "//absl/log/internal:test_helpers",
503        "//absl/log/internal:test_matchers",
504        "//absl/strings",
505        "@com_google_googletest//:gtest",
506        "@com_google_googletest//:gtest_main",
507    ],
508)
509
510cc_test(
511    name = "log_modifier_methods_test",
512    size = "small",
513    srcs = ["log_modifier_methods_test.cc"],
514    copts = ABSL_TEST_COPTS,
515    linkopts = ABSL_DEFAULT_LINKOPTS,
516    deps = [
517        ":log",
518        ":log_sink",
519        ":scoped_mock_log",
520        "//absl/log/internal:test_actions",
521        "//absl/log/internal:test_helpers",
522        "//absl/log/internal:test_matchers",
523        "//absl/strings",
524        "//absl/time",
525        "@com_google_googletest//:gtest",
526        "@com_google_googletest//:gtest_main",
527    ],
528)
529
530cc_test(
531    name = "scoped_mock_log_test",
532    size = "small",
533    srcs = ["scoped_mock_log_test.cc"],
534    copts = ABSL_TEST_COPTS,
535    linkopts = ABSL_DEFAULT_LINKOPTS,
536    linkstatic = 1,
537    tags = [
538        "no_test:os:ios",
539        "no_test_ios",
540        "no_test_wasm",
541    ],
542    deps = [
543        ":globals",
544        ":log",
545        ":scoped_mock_log",
546        "//absl/base:core_headers",
547        "//absl/base:log_severity",
548        "//absl/log/internal:test_helpers",
549        "//absl/log/internal:test_matchers",
550        "//absl/memory",
551        "//absl/strings",
552        "//absl/synchronization",
553        "@com_google_googletest//:gtest",
554        "@com_google_googletest//:gtest_main",
555    ],
556)
557
558cc_test(
559    name = "stripping_test",
560    size = "small",
561    srcs = ["stripping_test.cc"],
562    copts = ABSL_TEST_COPTS,
563    linkopts = ABSL_DEFAULT_LINKOPTS,
564    # This test requires all code live in the binary (instead of shared libraries)
565    # because we test for the existence of specific literals in the binary.
566    linkstatic = 1,
567    deps = [
568        ":check",
569        ":log",
570        "//absl/base:log_severity",
571        "//absl/base:strerror",
572        "//absl/flags:program_name",
573        "//absl/log/internal:test_helpers",
574        "//absl/strings",
575        "//absl/strings:str_format",
576        "@com_google_googletest//:gtest",
577        "@com_google_googletest//:gtest_main",
578    ],
579)
580
581cc_test(
582    name = "structured_test",
583    size = "small",
584    srcs = ["structured_test.cc"],
585    copts = ABSL_TEST_COPTS,
586    linkopts = ABSL_DEFAULT_LINKOPTS,
587    deps = [
588        ":log",
589        ":scoped_mock_log",
590        ":structured",
591        "//absl/base:core_headers",
592        "//absl/log/internal:test_helpers",
593        "//absl/log/internal:test_matchers",
594        "@com_google_googletest//:gtest",
595        "@com_google_googletest//:gtest_main",
596    ],
597)
598
599cc_test(
600    name = "log_benchmark",
601    size = "small",
602    srcs = ["log_benchmark.cc"],
603    copts = ABSL_TEST_COPTS,
604    linkopts = ABSL_DEFAULT_LINKOPTS,
605    tags = ["benchmark"],
606    deps = [
607        ":check",
608        ":flags",
609        ":globals",
610        ":log",
611        ":log_entry",
612        ":log_sink",
613        ":log_sink_registry",
614        "//absl/base:core_headers",
615        "//absl/base:log_severity",
616        "//absl/flags:flag",
617        "//absl/log/internal:flags",
618        "@com_github_google_benchmark//:benchmark_main",
619    ],
620)
621