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/hash", 113 "//absl/strings", 114 ], 115) 116 117cc_library( 118 name = "initialize", 119 srcs = ["initialize.cc"], 120 hdrs = ["initialize.h"], 121 copts = ABSL_DEFAULT_COPTS, 122 linkopts = ABSL_DEFAULT_LINKOPTS, 123 visibility = ["//visibility:public"], 124 deps = [ 125 ":globals", 126 "//absl/base:config", 127 "//absl/log/internal:globals", 128 "//absl/time", 129 ], 130) 131 132cc_library( 133 name = "log", 134 hdrs = ["log.h"], 135 copts = ABSL_DEFAULT_COPTS, 136 linkopts = ABSL_DEFAULT_LINKOPTS, 137 deps = [ 138 "//absl/log/internal:log_impl", 139 ], 140) 141 142cc_library( 143 name = "log_entry", 144 srcs = ["log_entry.cc"], 145 hdrs = ["log_entry.h"], 146 copts = ABSL_DEFAULT_COPTS, 147 linkopts = ABSL_DEFAULT_LINKOPTS, 148 deps = [ 149 "//absl/base:config", 150 "//absl/base:core_headers", 151 "//absl/base:log_severity", 152 "//absl/log/internal:config", 153 "//absl/strings", 154 "//absl/time", 155 "//absl/types:span", 156 ], 157) 158 159cc_library( 160 name = "log_sink", 161 srcs = ["log_sink.cc"], 162 hdrs = ["log_sink.h"], 163 copts = ABSL_DEFAULT_COPTS, 164 linkopts = ABSL_DEFAULT_LINKOPTS, 165 deps = [ 166 ":log_entry", 167 "//absl/base:config", 168 ], 169) 170 171cc_library( 172 name = "log_sink_registry", 173 hdrs = ["log_sink_registry.h"], 174 copts = ABSL_DEFAULT_COPTS, 175 linkopts = ABSL_DEFAULT_LINKOPTS, 176 deps = [ 177 ":log_sink", 178 "//absl/base:config", 179 "//absl/log/internal:log_sink_set", 180 ], 181) 182 183cc_library( 184 name = "log_streamer", 185 hdrs = ["log_streamer.h"], 186 copts = ABSL_DEFAULT_COPTS, 187 linkopts = ABSL_DEFAULT_LINKOPTS, 188 deps = [ 189 ":absl_log", 190 "//absl/base:config", 191 "//absl/base:log_severity", 192 "//absl/strings", 193 "//absl/strings:internal", 194 "//absl/types:optional", 195 "//absl/utility", 196 ], 197) 198 199cc_library( 200 name = "scoped_mock_log", 201 testonly = True, 202 srcs = ["scoped_mock_log.cc"], 203 hdrs = ["scoped_mock_log.h"], 204 copts = ABSL_DEFAULT_COPTS, 205 linkopts = ABSL_DEFAULT_LINKOPTS, 206 deps = [ 207 ":log_entry", 208 ":log_sink", 209 ":log_sink_registry", 210 "//absl/base:config", 211 "//absl/base:log_severity", 212 "//absl/base:raw_logging_internal", 213 "//absl/strings", 214 "@com_google_googletest//:gtest", 215 ], 216) 217 218cc_library( 219 name = "structured", 220 hdrs = ["structured.h"], 221 copts = ABSL_DEFAULT_COPTS, 222 linkopts = ABSL_DEFAULT_LINKOPTS, 223 deps = [ 224 "//absl/base:config", 225 "//absl/log/internal:structured", 226 "//absl/strings", 227 ], 228) 229 230# Test targets 231 232cc_test( 233 name = "absl_check_test", 234 size = "small", 235 srcs = ["absl_check_test.cc"], 236 copts = ABSL_TEST_COPTS, 237 linkopts = ABSL_DEFAULT_LINKOPTS, 238 tags = [ 239 "no_test:os:ios", 240 "no_test_ios", 241 "no_test_wasm", 242 ], 243 deps = [ 244 ":absl_check", 245 ":check_test_impl", 246 "@com_google_googletest//:gtest_main", 247 ], 248) 249 250cc_test( 251 name = "absl_log_basic_test", 252 size = "small", 253 srcs = ["absl_log_basic_test.cc"], 254 copts = ABSL_TEST_COPTS, 255 linkopts = ABSL_DEFAULT_LINKOPTS, 256 deps = [ 257 ":absl_log", 258 ":log_basic_test_impl", 259 "@com_google_googletest//:gtest_main", 260 ], 261) 262 263cc_test( 264 name = "check_test", 265 size = "small", 266 srcs = ["check_test.cc"], 267 copts = ABSL_TEST_COPTS, 268 linkopts = ABSL_DEFAULT_LINKOPTS, 269 tags = [ 270 "no_test:os:ios", 271 "no_test_ios", 272 "no_test_wasm", 273 ], 274 deps = [ 275 ":check", 276 ":check_test_impl", 277 "@com_google_googletest//:gtest_main", 278 ], 279) 280 281cc_library( 282 name = "check_test_impl", 283 testonly = True, 284 copts = ABSL_TEST_COPTS, 285 linkopts = ABSL_DEFAULT_LINKOPTS, 286 tags = [ 287 "no_test:os:ios", 288 "no_test_ios", 289 "no_test_wasm", 290 ], 291 textual_hdrs = ["check_test_impl.h"], 292 visibility = ["//visibility:private"], 293 deps = [ 294 "//absl/base:config", 295 "//absl/base:core_headers", 296 "//absl/log/internal:test_helpers", 297 "//absl/status", 298 "@com_google_googletest//:gtest", 299 ], 300) 301 302cc_test( 303 name = "die_if_null_test", 304 size = "small", 305 srcs = ["die_if_null_test.cc"], 306 copts = ABSL_TEST_COPTS, 307 linkopts = ABSL_DEFAULT_LINKOPTS, 308 deps = [ 309 ":die_if_null", 310 "//absl/base:core_headers", 311 "//absl/log/internal:test_helpers", 312 "@com_google_googletest//:gtest_main", 313 ], 314) 315 316cc_test( 317 name = "flags_test", 318 size = "small", 319 srcs = ["flags_test.cc"], 320 copts = ABSL_TEST_COPTS, 321 linkopts = ABSL_DEFAULT_LINKOPTS, 322 deps = [ 323 ":flags", 324 ":globals", 325 ":log", 326 ":scoped_mock_log", 327 "//absl/base:core_headers", 328 "//absl/base:log_severity", 329 "//absl/flags:flag", 330 "//absl/flags:reflection", 331 "//absl/log/internal:flags", 332 "//absl/log/internal:test_helpers", 333 "//absl/log/internal:test_matchers", 334 "//absl/strings", 335 "@com_google_googletest//:gtest_main", 336 ], 337) 338 339cc_test( 340 name = "globals_test", 341 size = "small", 342 srcs = ["globals_test.cc"], 343 copts = ABSL_TEST_COPTS, 344 linkopts = ABSL_DEFAULT_LINKOPTS, 345 deps = [ 346 ":globals", 347 ":log", 348 ":scoped_mock_log", 349 "//absl/base:core_headers", 350 "//absl/base:log_severity", 351 "//absl/log/internal:globals", 352 "//absl/log/internal:test_helpers", 353 "@com_google_googletest//:gtest_main", 354 ], 355) 356 357cc_test( 358 name = "log_basic_test", 359 size = "small", 360 srcs = ["log_basic_test.cc"], 361 copts = ABSL_TEST_COPTS, 362 linkopts = ABSL_DEFAULT_LINKOPTS, 363 deps = [ 364 ":log", 365 ":log_basic_test_impl", 366 "@com_google_googletest//:gtest_main", 367 ], 368) 369 370cc_library( 371 name = "log_basic_test_impl", 372 testonly = True, 373 copts = ABSL_TEST_COPTS, 374 linkopts = ABSL_DEFAULT_LINKOPTS, 375 textual_hdrs = ["log_basic_test_impl.h"], 376 visibility = ["//visibility:private"], 377 deps = [ 378 "//absl/base", 379 "//absl/base:log_severity", 380 "//absl/log:globals", 381 "//absl/log:log_entry", 382 "//absl/log:scoped_mock_log", 383 "//absl/log/internal:test_actions", 384 "//absl/log/internal:test_helpers", 385 "//absl/log/internal:test_matchers", 386 "@com_google_googletest//:gtest", 387 ], 388) 389 390cc_test( 391 name = "log_entry_test", 392 size = "small", 393 srcs = ["log_entry_test.cc"], 394 copts = ABSL_TEST_COPTS, 395 linkopts = ABSL_DEFAULT_LINKOPTS, 396 deps = [ 397 ":log_entry", 398 "//absl/base:config", 399 "//absl/base:core_headers", 400 "//absl/base:log_severity", 401 "//absl/log/internal:append_truncated", 402 "//absl/log/internal:format", 403 "//absl/log/internal:test_helpers", 404 "//absl/strings", 405 "//absl/time", 406 "//absl/types:span", 407 "@com_google_googletest//:gtest_main", 408 ], 409) 410 411cc_test( 412 name = "log_format_test", 413 size = "small", 414 srcs = ["log_format_test.cc"], 415 copts = ABSL_TEST_COPTS, 416 linkopts = ABSL_DEFAULT_LINKOPTS, 417 deps = [ 418 ":check", 419 ":log", 420 ":scoped_mock_log", 421 "//absl/log/internal:test_matchers", 422 "//absl/strings", 423 "//absl/strings:str_format", 424 "//absl/types:optional", 425 "@com_google_googletest//:gtest_main", 426 ], 427) 428 429cc_test( 430 name = "log_macro_hygiene_test", 431 size = "small", 432 srcs = ["log_macro_hygiene_test.cc"], 433 copts = ABSL_TEST_COPTS, 434 linkopts = ABSL_DEFAULT_LINKOPTS, 435 deps = [ 436 ":log", 437 ":scoped_mock_log", 438 "//absl/base:core_headers", 439 "//absl/base:log_severity", 440 "@com_google_googletest//:gtest_main", 441 ], 442) 443 444cc_test( 445 name = "log_sink_test", 446 size = "medium", 447 srcs = ["log_sink_test.cc"], 448 copts = ABSL_TEST_COPTS, 449 linkopts = ABSL_DEFAULT_LINKOPTS, 450 tags = [ 451 "no_test:os:ios", 452 "no_test_ios", 453 "no_test_wasm", 454 ], 455 deps = [ 456 ":log", 457 ":log_sink", 458 ":log_sink_registry", 459 ":scoped_mock_log", 460 "//absl/base:core_headers", 461 "//absl/base:raw_logging_internal", 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:strerror", 550 "//absl/flags:program_name", 551 "//absl/log/internal:test_helpers", 552 "//absl/strings", 553 "//absl/strings:str_format", 554 "@com_google_googletest//:gtest_main", 555 ], 556) 557 558cc_test( 559 name = "structured_test", 560 size = "small", 561 srcs = ["structured_test.cc"], 562 copts = ABSL_TEST_COPTS, 563 linkopts = ABSL_DEFAULT_LINKOPTS, 564 deps = [ 565 ":log", 566 ":scoped_mock_log", 567 ":structured", 568 "//absl/base:core_headers", 569 "//absl/log/internal:test_helpers", 570 "//absl/log/internal:test_matchers", 571 "@com_google_googletest//:gtest_main", 572 ], 573) 574 575cc_binary( 576 name = "log_benchmark", 577 testonly = 1, 578 srcs = ["log_benchmark.cc"], 579 copts = ABSL_TEST_COPTS, 580 linkopts = ABSL_DEFAULT_LINKOPTS, 581 tags = ["benchmark"], 582 deps = [ 583 ":check", 584 ":flags", 585 ":globals", 586 ":log", 587 ":log_entry", 588 ":log_sink", 589 ":log_sink_registry", 590 "//absl/base:core_headers", 591 "//absl/base:log_severity", 592 "//absl/flags:flag", 593 "//absl/log/internal:flags", 594 "@com_github_google_benchmark//:benchmark_main", 595 ], 596) 597