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 = [ 26 "//absl/log:__pkg__", 27 ], 28 features = [ 29 "header_modules", 30 "layering_check", 31 "parse_headers", 32 ], 33) 34 35licenses(["notice"]) 36 37cc_library( 38 name = "check_impl", 39 hdrs = ["check_impl.h"], 40 copts = ABSL_DEFAULT_COPTS, 41 linkopts = ABSL_DEFAULT_LINKOPTS, 42 deps = [ 43 ":check_op", 44 ":conditions", 45 ":log_message", 46 ":strip", 47 "//absl/base:core_headers", 48 ], 49) 50 51cc_library( 52 name = "check_op", 53 srcs = ["check_op.cc"], 54 hdrs = ["check_op.h"], 55 copts = ABSL_DEFAULT_COPTS, 56 linkopts = ABSL_DEFAULT_LINKOPTS, 57 visibility = [ 58 "//absl/log:__pkg__", 59 ], 60 deps = [ 61 ":nullguard", 62 ":nullstream", 63 ":strip", 64 "//absl/base:config", 65 "//absl/base:core_headers", 66 "//absl/strings", 67 ], 68) 69 70cc_library( 71 name = "conditions", 72 srcs = ["conditions.cc"], 73 hdrs = ["conditions.h"], 74 copts = ABSL_DEFAULT_COPTS, 75 linkopts = ABSL_DEFAULT_LINKOPTS, 76 deps = [ 77 ":voidify", 78 "//absl/base", 79 "//absl/base:config", 80 "//absl/base:core_headers", 81 ], 82) 83 84cc_library( 85 name = "config", 86 hdrs = ["config.h"], 87 copts = ABSL_DEFAULT_COPTS, 88 linkopts = ABSL_DEFAULT_LINKOPTS, 89 visibility = [ 90 "//absl/log:__pkg__", 91 ], 92 deps = [ 93 "//absl/base:config", 94 "//absl/base:core_headers", 95 ], 96) 97 98cc_library( 99 name = "flags", 100 hdrs = ["flags.h"], 101 copts = ABSL_DEFAULT_COPTS, 102 linkopts = ABSL_DEFAULT_LINKOPTS, 103 deps = [ 104 "//absl/flags:flag", 105 ], 106) 107 108cc_library( 109 name = "format", 110 srcs = ["log_format.cc"], 111 hdrs = ["log_format.h"], 112 copts = ABSL_DEFAULT_COPTS, 113 linkopts = ABSL_DEFAULT_LINKOPTS, 114 deps = [ 115 ":append_truncated", 116 ":config", 117 ":globals", 118 "//absl/base:config", 119 "//absl/base:core_headers", 120 "//absl/base:log_severity", 121 "//absl/strings", 122 "//absl/strings:str_format", 123 "//absl/time", 124 "//absl/types:span", 125 ], 126) 127 128cc_library( 129 name = "globals", 130 srcs = ["globals.cc"], 131 hdrs = ["globals.h"], 132 copts = ABSL_DEFAULT_COPTS, 133 linkopts = ABSL_DEFAULT_LINKOPTS, 134 visibility = [ 135 "//absl/log:__pkg__", 136 ], 137 deps = [ 138 "//absl/base:config", 139 "//absl/base:core_headers", 140 "//absl/base:log_severity", 141 "//absl/base:raw_logging_internal", 142 "//absl/strings", 143 "//absl/time", 144 ], 145) 146 147cc_library( 148 name = "log_impl", 149 hdrs = ["log_impl.h"], 150 copts = ABSL_DEFAULT_COPTS, 151 linkopts = ABSL_DEFAULT_LINKOPTS, 152 deps = [ 153 ":conditions", 154 ":log_message", 155 ":strip", 156 "//absl/log:absl_vlog_is_on", 157 ], 158) 159 160cc_library( 161 name = "log_message", 162 srcs = ["log_message.cc"], 163 hdrs = ["log_message.h"], 164 copts = ABSL_DEFAULT_COPTS, 165 linkopts = ABSL_DEFAULT_LINKOPTS, 166 visibility = [ 167 "//absl/log:__pkg__", 168 ], 169 deps = [ 170 ":append_truncated", 171 ":format", 172 ":globals", 173 ":log_sink_set", 174 ":nullguard", 175 ":proto", 176 "//absl/base", 177 "//absl/base:config", 178 "//absl/base:core_headers", 179 "//absl/base:errno_saver", 180 "//absl/base:log_severity", 181 "//absl/base:raw_logging_internal", 182 "//absl/base:strerror", 183 "//absl/container:inlined_vector", 184 "//absl/debugging:examine_stack", 185 "//absl/log:globals", 186 "//absl/log:log_entry", 187 "//absl/log:log_sink", 188 "//absl/log:log_sink_registry", 189 "//absl/memory", 190 "//absl/strings", 191 "//absl/time", 192 "//absl/types:span", 193 ], 194) 195 196cc_library( 197 name = "append_truncated", 198 hdrs = ["append_truncated.h"], 199 copts = ABSL_DEFAULT_COPTS, 200 linkopts = ABSL_DEFAULT_LINKOPTS, 201 deps = [ 202 "//absl/base:config", 203 "//absl/strings", 204 "//absl/types:span", 205 ], 206) 207 208cc_library( 209 name = "log_sink_set", 210 srcs = ["log_sink_set.cc"], 211 hdrs = ["log_sink_set.h"], 212 copts = ABSL_DEFAULT_COPTS, 213 linkopts = ABSL_DEFAULT_LINKOPTS + select({ 214 "//conditions:default": [], 215 "@platforms//os:android": ["-llog"], 216 }), 217 deps = [ 218 ":config", 219 ":globals", 220 "//absl/base", 221 "//absl/base:config", 222 "//absl/base:core_headers", 223 "//absl/base:log_severity", 224 "//absl/base:no_destructor", 225 "//absl/base:raw_logging_internal", 226 "//absl/cleanup", 227 "//absl/log:globals", 228 "//absl/log:log_entry", 229 "//absl/log:log_sink", 230 "//absl/strings", 231 "//absl/synchronization", 232 "//absl/types:span", 233 ], 234) 235 236cc_library( 237 name = "nullguard", 238 srcs = ["nullguard.cc"], 239 hdrs = ["nullguard.h"], 240 copts = ABSL_DEFAULT_COPTS, 241 linkopts = ABSL_DEFAULT_LINKOPTS, 242 deps = [ 243 "//absl/base:config", 244 "//absl/base:core_headers", 245 ], 246) 247 248cc_library( 249 name = "nullstream", 250 hdrs = ["nullstream.h"], 251 copts = ABSL_DEFAULT_COPTS, 252 linkopts = ABSL_DEFAULT_LINKOPTS, 253 deps = [ 254 "//absl/base:config", 255 "//absl/base:core_headers", 256 "//absl/base:log_severity", 257 "//absl/strings", 258 ], 259) 260 261cc_library( 262 name = "strip", 263 hdrs = ["strip.h"], 264 copts = ABSL_DEFAULT_COPTS, 265 linkopts = ABSL_DEFAULT_LINKOPTS, 266 deps = [ 267 ":log_message", 268 ":nullstream", 269 "//absl/base:core_headers", 270 "//absl/base:log_severity", 271 ], 272) 273 274cc_library( 275 name = "structured", 276 hdrs = ["structured.h"], 277 copts = ABSL_DEFAULT_COPTS, 278 linkopts = ABSL_DEFAULT_LINKOPTS, 279 deps = [ 280 ":log_message", 281 "//absl/base:config", 282 "//absl/strings", 283 ], 284) 285 286cc_library( 287 name = "test_actions", 288 testonly = True, 289 srcs = ["test_actions.cc"], 290 hdrs = ["test_actions.h"], 291 copts = ABSL_DEFAULT_COPTS, 292 linkopts = ABSL_DEFAULT_LINKOPTS, 293 deps = [ 294 "//absl/base:config", 295 "//absl/base:core_headers", 296 "//absl/base:log_severity", 297 "//absl/log:log_entry", 298 "//absl/strings", 299 "//absl/time", 300 ] + select({ 301 "//absl:msvc_compiler": [], 302 "//conditions:default": [ 303 ], 304 }), 305) 306 307cc_library( 308 name = "test_helpers", 309 testonly = True, 310 srcs = ["test_helpers.cc"], 311 hdrs = ["test_helpers.h"], 312 copts = ABSL_DEFAULT_COPTS, 313 linkopts = ABSL_DEFAULT_LINKOPTS, 314 deps = [ 315 ":globals", 316 "//absl/base:config", 317 "//absl/base:log_severity", 318 "//absl/log:globals", 319 "//absl/log:initialize", 320 "@com_google_googletest//:gtest", 321 ], 322) 323 324cc_library( 325 name = "test_matchers", 326 testonly = True, 327 srcs = ["test_matchers.cc"], 328 hdrs = ["test_matchers.h"], 329 copts = ABSL_DEFAULT_COPTS, 330 linkopts = ABSL_DEFAULT_LINKOPTS, 331 deps = [ 332 ":test_helpers", 333 "//absl/base:config", 334 "//absl/base:core_headers", 335 "//absl/base:log_severity", 336 "//absl/log:log_entry", 337 "//absl/strings", 338 "//absl/time", 339 "@com_google_googletest//:gtest", 340 ] + select({ 341 "//absl:msvc_compiler": [], 342 "//conditions:default": [ 343 ], 344 }), 345) 346 347cc_library( 348 name = "voidify", 349 hdrs = ["voidify.h"], 350 copts = ABSL_DEFAULT_COPTS, 351 linkopts = ABSL_DEFAULT_LINKOPTS, 352 deps = ["//absl/base:config"], 353) 354 355cc_library( 356 name = "proto", 357 srcs = ["proto.cc"], 358 hdrs = ["proto.h"], 359 copts = ABSL_DEFAULT_COPTS, 360 linkopts = ABSL_DEFAULT_LINKOPTS, 361 deps = [ 362 "//absl/base", 363 "//absl/base:config", 364 "//absl/base:core_headers", 365 "//absl/strings", 366 "//absl/types:span", 367 ], 368) 369 370cc_library( 371 name = "fnmatch", 372 srcs = ["fnmatch.cc"], 373 hdrs = ["fnmatch.h"], 374 copts = ABSL_DEFAULT_COPTS, 375 linkopts = ABSL_DEFAULT_LINKOPTS, 376 deps = [ 377 "//absl/base:config", 378 "//absl/strings", 379 ], 380) 381 382cc_library( 383 name = "vlog_config", 384 srcs = ["vlog_config.cc"], 385 hdrs = ["vlog_config.h"], 386 copts = ABSL_DEFAULT_COPTS, 387 linkopts = ABSL_DEFAULT_LINKOPTS, 388 visibility = [ 389 "//absl/log:__subpackages__", 390 ], 391 deps = [ 392 "//absl/base", 393 "//absl/base:config", 394 "//absl/base:core_headers", 395 "//absl/base:no_destructor", 396 "//absl/log/internal:fnmatch", 397 "//absl/memory", 398 "//absl/strings", 399 "//absl/synchronization", 400 "//absl/types:optional", 401 ], 402) 403 404cc_binary( 405 name = "vlog_config_benchmark", 406 testonly = True, 407 srcs = ["vlog_config_benchmark.cc"], 408 copts = ABSL_TEST_COPTS, 409 linkopts = ABSL_DEFAULT_LINKOPTS, 410 tags = [ 411 "benchmark", 412 ], 413 visibility = ["//visibility:private"], 414 deps = [ 415 ":vlog_config", 416 "//absl/base:config", 417 "//absl/base:core_headers", 418 "//absl/container:layout", 419 "//absl/memory", 420 "//absl/random:distributions", 421 "//absl/strings", 422 "@com_github_google_benchmark//:benchmark_main", 423 ], 424) 425 426# Test targets 427cc_test( 428 name = "stderr_log_sink_test", 429 size = "small", 430 srcs = ["stderr_log_sink_test.cc"], 431 copts = ABSL_TEST_COPTS, 432 linkopts = ABSL_DEFAULT_LINKOPTS, 433 tags = [ 434 "no_test:os:android", 435 "no_test:os:ios", 436 "no_test_android", 437 "no_test_darwin_x86_64", 438 "no_test_ios", 439 "no_test_wasm", 440 ], 441 deps = [ 442 ":test_helpers", 443 "//absl/base:core_headers", 444 "//absl/base:log_severity", 445 "//absl/log", 446 "//absl/log:globals", 447 "@com_google_googletest//:gtest", 448 "@com_google_googletest//:gtest_main", 449 ], 450) 451 452cc_test( 453 name = "fnmatch_test", 454 srcs = ["fnmatch_test.cc"], 455 copts = ABSL_TEST_COPTS, 456 linkopts = ABSL_DEFAULT_LINKOPTS, 457 deps = [ 458 ":fnmatch", 459 "@com_google_googletest//:gtest", 460 "@com_google_googletest//:gtest_main", 461 ], 462) 463 464cc_test( 465 name = "fnmatch_benchmark", 466 srcs = ["fnmatch_benchmark.cc"], 467 copts = ABSL_TEST_COPTS, 468 linkopts = ABSL_DEFAULT_LINKOPTS, 469 tags = ["benchmark"], 470 deps = [ 471 ":fnmatch", 472 "@com_github_google_benchmark//:benchmark_main", 473 ], 474) 475