| # | |
| # Copyright 2022 The Abseil Authors. | |
| # | |
| # Licensed under the Apache License, Version 2.0 (the "License"); | |
| # you may not use this file except in compliance with the License. | |
| # You may obtain a copy of the License at | |
| # | |
| # https://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, software | |
| # distributed under the License is distributed on an "AS IS" BASIS, | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| # See the License for the specific language governing permissions and | |
| # limitations under the License. | |
| # | |
| load("@rules_cc//cc:cc_library.bzl", "cc_library") | |
| load("@rules_cc//cc:cc_test.bzl", "cc_test") | |
| load( | |
| "//absl:copts/configure_copts.bzl", | |
| "ABSL_DEFAULT_COPTS", | |
| "ABSL_DEFAULT_LINKOPTS", | |
| "ABSL_TEST_COPTS", | |
| ) | |
| package( | |
| default_visibility = ["//visibility:private"], | |
| features = [ | |
| "header_modules", | |
| "layering_check", | |
| "parse_headers", | |
| ], | |
| ) | |
| licenses(["notice"]) | |
| # Public targets | |
| cc_library( | |
| name = "absl_check", | |
| hdrs = ["absl_check.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/log/internal:check_impl", | |
| ], | |
| ) | |
| cc_library( | |
| name = "absl_log", | |
| hdrs = ["absl_log.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/log/internal:log_impl", | |
| ], | |
| ) | |
| cc_library( | |
| name = "check", | |
| hdrs = ["check.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/log/internal:check_impl", | |
| "//absl/log/internal:check_op", | |
| "//absl/log/internal:conditions", | |
| "//absl/log/internal:log_message", | |
| "//absl/log/internal:strip", | |
| ], | |
| ) | |
| cc_library( | |
| name = "die_if_null", | |
| srcs = ["die_if_null.cc"], | |
| hdrs = ["die_if_null.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":log", | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/base:nullability", | |
| "//absl/base:nullability_traits_internal", | |
| "//absl/strings", | |
| ], | |
| ) | |
| cc_library( | |
| name = "flags", | |
| srcs = ["flags.cc"], | |
| hdrs = ["flags.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":globals", | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/flags:flag", | |
| "//absl/flags:marshalling", | |
| "//absl/log/internal:config", | |
| "//absl/log/internal:flags", | |
| "//absl/log/internal:vlog_config", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| ], | |
| # Binaries which do not access these flags from C++ still want this library linked in. | |
| alwayslink = True, | |
| ) | |
| cc_library( | |
| name = "globals", | |
| srcs = ["globals.cc"], | |
| hdrs = ["globals.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/base:atomic_hook", | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/base:raw_logging_internal", | |
| "//absl/hash", | |
| "//absl/log/internal:vlog_config", | |
| "//absl/strings:string_view", | |
| ], | |
| ) | |
| cc_library( | |
| name = "initialize", | |
| srcs = ["initialize.cc"], | |
| hdrs = ["initialize.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":globals", | |
| "//absl/base:config", | |
| "//absl/log/internal:globals", | |
| "//absl/time", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log", | |
| hdrs = ["log.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":vlog_is_on", | |
| "//absl/log/internal:log_impl", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log_entry", | |
| srcs = ["log_entry.cc"], | |
| hdrs = ["log_entry.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:config", | |
| "//absl/log/internal:proto", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| "//absl/time", | |
| "//absl/types:span", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log_sink", | |
| srcs = ["log_sink.cc"], | |
| hdrs = ["log_sink.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":log_entry", | |
| "//absl/base:config", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log_sink_registry", | |
| hdrs = ["log_sink_registry.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":log_sink", | |
| "//absl/base:config", | |
| "//absl/base:nullability", | |
| "//absl/log/internal:log_sink_set", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log_streamer", | |
| hdrs = ["log_streamer.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":absl_log", | |
| "//absl/base:config", | |
| "//absl/base:log_severity", | |
| "//absl/strings:internal", | |
| "//absl/strings:string_view", | |
| "//absl/types:optional", | |
| "//absl/types:source_location", | |
| "//absl/utility", | |
| ], | |
| ) | |
| cc_library( | |
| name = "scoped_mock_log", | |
| testonly = True, | |
| srcs = ["scoped_mock_log.cc"], | |
| hdrs = ["scoped_mock_log.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":log_entry", | |
| ":log_sink", | |
| ":log_sink_registry", | |
| "//absl/base:config", | |
| "//absl/base:log_severity", | |
| "//absl/base:raw_logging_internal", | |
| "//absl/strings:string_view", | |
| "@googletest//:gtest", | |
| ], | |
| ) | |
| cc_library( | |
| name = "structured", | |
| hdrs = ["structured.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:structured", | |
| "//absl/strings:string_view", | |
| ], | |
| ) | |
| cc_library( | |
| name = "absl_vlog_is_on", | |
| hdrs = ["absl_vlog_is_on.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:vlog_config", | |
| "//absl/strings:string_view", | |
| ], | |
| ) | |
| cc_library( | |
| name = "vlog_is_on", | |
| hdrs = ["vlog_is_on.h"], | |
| copts = ABSL_DEFAULT_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| visibility = ["//visibility:public"], | |
| deps = [ | |
| ":absl_vlog_is_on", | |
| ], | |
| ) | |
| # TODO(b/200695798): run this in TAP projects with -DABSL_MAX_VLOG_VERBOSITY={-100,100} | |
| cc_test( | |
| name = "vlog_is_on_test", | |
| size = "small", | |
| srcs = [ | |
| "vlog_is_on_test.cc", | |
| ], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":flags", | |
| ":globals", | |
| ":log", | |
| ":scoped_mock_log", | |
| ":vlog_is_on", | |
| "//absl/base:log_severity", | |
| "//absl/flags:flag", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| # Test targets | |
| cc_test( | |
| name = "absl_check_test", | |
| size = "small", | |
| timeout = "moderate", | |
| srcs = ["absl_check_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| tags = [ | |
| "no_test:os:ios", | |
| "no_test_ios", | |
| "no_test_wasm", | |
| ], | |
| deps = [ | |
| ":absl_check", | |
| ":check_test_impl", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "absl_log_basic_test", | |
| size = "small", | |
| timeout = "moderate", | |
| srcs = ["absl_log_basic_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":absl_log", | |
| ":log_basic_test_impl", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "check_test", | |
| size = "small", | |
| timeout = "moderate", | |
| srcs = ["check_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| tags = [ | |
| "no_test:os:ios", | |
| "no_test_ios", | |
| "no_test_wasm", | |
| ], | |
| deps = [ | |
| ":check", | |
| ":check_test_impl", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "check_test_impl", | |
| testonly = True, | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| tags = [ | |
| "no_test:os:ios", | |
| "no_test_ios", | |
| "no_test_wasm", | |
| ], | |
| textual_hdrs = ["check_test_impl.inc"], | |
| visibility = ["//visibility:private"], | |
| deps = [ | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/status", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| "@googletest//:gtest", | |
| ], | |
| ) | |
| cc_test( | |
| name = "die_if_null_test", | |
| size = "small", | |
| srcs = ["die_if_null_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":die_if_null", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:test_helpers", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "flags_test", | |
| size = "small", | |
| srcs = ["flags_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":flags", | |
| ":globals", | |
| ":log", | |
| ":scoped_mock_log", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/flags:flag", | |
| "//absl/flags:reflection", | |
| "//absl/log/internal:flags", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/strings", | |
| "//absl/types:source_location", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "globals_test", | |
| size = "small", | |
| srcs = ["globals_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":globals", | |
| ":log", | |
| ":scoped_mock_log", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:globals", | |
| "//absl/log/internal:test_helpers", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_basic_test", | |
| size = "small", | |
| timeout = "moderate", | |
| srcs = ["log_basic_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log", | |
| ":log_basic_test_impl", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_library( | |
| name = "log_basic_test_impl", | |
| testonly = True, | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| textual_hdrs = ["log_basic_test_impl.inc"], | |
| visibility = ["//visibility:private"], | |
| deps = [ | |
| ":globals", | |
| ":log_entry", | |
| ":scoped_mock_log", | |
| "//absl/base", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:globals", | |
| "//absl/log/internal:test_actions", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "@googletest//:gtest", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_entry_test", | |
| size = "small", | |
| srcs = ["log_entry_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log_entry", | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:append_truncated", | |
| "//absl/log/internal:format", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| "//absl/time", | |
| "//absl/types:span", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_format_test", | |
| size = "small", | |
| srcs = ["log_format_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":check", | |
| ":log", | |
| ":log_entry", | |
| ":log_sink", | |
| ":scoped_mock_log", | |
| "//absl/base:config", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/strings", | |
| "//absl/strings:str_format", | |
| "//absl/strings:string_view", | |
| "//absl/types:source_location", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_macro_hygiene_test", | |
| size = "small", | |
| srcs = ["log_macro_hygiene_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log", | |
| ":scoped_mock_log", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_sink_test", | |
| size = "medium", | |
| srcs = ["log_sink_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| tags = [ | |
| "no_test:os:ios", | |
| "no_test_ios", | |
| "no_test_wasm", | |
| ], | |
| deps = [ | |
| ":log", | |
| ":log_entry", | |
| ":log_sink", | |
| ":log_sink_registry", | |
| ":scoped_mock_log", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:test_actions", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/strings:string_view", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_streamer_test", | |
| size = "medium", | |
| srcs = ["log_streamer_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log", | |
| ":log_streamer", | |
| ":scoped_mock_log", | |
| "//absl/base", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:test_actions", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/strings:string_view", | |
| "//absl/types:source_location", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_modifier_methods_test", | |
| size = "small", | |
| srcs = ["log_modifier_methods_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log", | |
| ":log_entry", | |
| ":log_sink", | |
| ":scoped_mock_log", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:test_actions", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| "//absl/time", | |
| "//absl/types:source_location", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "scoped_mock_log_test", | |
| size = "small", | |
| srcs = ["scoped_mock_log_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| linkstatic = 1, | |
| tags = [ | |
| "no_test:os:ios", | |
| "no_test_ios", | |
| "no_test_wasm", | |
| ], | |
| deps = [ | |
| ":globals", | |
| ":log", | |
| ":log_entry", | |
| ":scoped_mock_log", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "//absl/memory", | |
| "//absl/strings", | |
| "//absl/strings:string_view", | |
| "//absl/synchronization", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "stripping_test", | |
| size = "small", | |
| srcs = ["stripping_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| # This test requires all code live in the binary (instead of shared libraries) | |
| # because we test for the existence of specific literals in the binary. | |
| linkstatic = 1, | |
| deps = [ | |
| ":check", | |
| ":log", | |
| "//absl/base:log_severity", | |
| "//absl/base:strerror", | |
| "//absl/flags:program_name", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/status", | |
| "//absl/strings", | |
| "//absl/strings:str_format", | |
| "//absl/strings:string_view", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "structured_test", | |
| size = "small", | |
| srcs = ["structured_test.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| deps = [ | |
| ":log", | |
| ":scoped_mock_log", | |
| ":structured", | |
| "//absl/base:core_headers", | |
| "//absl/log/internal:test_helpers", | |
| "//absl/log/internal:test_matchers", | |
| "@googletest//:gtest", | |
| "@googletest//:gtest_main", | |
| ], | |
| ) | |
| cc_test( | |
| name = "log_benchmark", | |
| size = "small", | |
| srcs = ["log_benchmark.cc"], | |
| copts = ABSL_TEST_COPTS, | |
| linkopts = ABSL_DEFAULT_LINKOPTS, | |
| tags = ["benchmark"], | |
| deps = [ | |
| ":check", | |
| ":flags", | |
| ":globals", | |
| ":log", | |
| ":log_entry", | |
| ":log_sink", | |
| ":log_sink_registry", | |
| ":vlog_is_on", | |
| "//absl/base:core_headers", | |
| "//absl/base:log_severity", | |
| "//absl/flags:flag", | |
| "//absl/log/internal:flags", | |
| "@google_benchmark//:benchmark_main", | |
| ], | |
| ) |