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