From 1adf896ec842bd9788a1bbede94a33e1402b8ecb Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Tue, 11 Jul 2023 13:36:35 -0700 Subject: Add a smaller library for string_view so that users can depend on string_view without depending on all of //absl/strings:strings New code that uses string_view.h should depend on //absl/strings:string_view (Bazel) or absl::string_view (CMake) instead. PiperOrigin-RevId: 547283268 Change-Id: I6006b19605ce377d12c462129dda14251d16e1c1 --- absl/strings/BUILD.bazel | 25 +++++++++++++++++++++++-- absl/strings/CMakeLists.txt | 20 ++++++++++++++++++-- 2 files changed, 41 insertions(+), 4 deletions(-) (limited to 'absl') diff --git a/absl/strings/BUILD.bazel b/absl/strings/BUILD.bazel index 313ba1ab..819bbe69 100644 --- a/absl/strings/BUILD.bazel +++ b/absl/strings/BUILD.bazel @@ -27,6 +27,20 @@ package( licenses(["notice"]) +cc_library( + name = "string_view", + srcs = ["string_view.cc"], + hdrs = ["string_view.h"], + copts = ABSL_DEFAULT_COPTS, + linkopts = ABSL_DEFAULT_LINKOPTS, + deps = [ + "//absl/base", + "//absl/base:config", + "//absl/base:core_headers", + "//absl/base:throw_delegate", + ], +) + cc_library( name = "strings", srcs = [ @@ -50,7 +64,6 @@ cc_library( "str_cat.cc", "str_replace.cc", "str_split.cc", - "string_view.cc", "substitute.cc", ], hdrs = [ @@ -72,8 +85,15 @@ cc_library( ], copts = ABSL_DEFAULT_COPTS, linkopts = ABSL_DEFAULT_LINKOPTS, + textual_hdrs = [ + # string_view.h was once part of :strings, so string_view.h is + # re-exported for backwards compatibility. + # New code should directly depend on :string_view. + "string_view.h", + ], deps = [ ":internal", + ":string_view", "//absl/base", "//absl/base:config", "//absl/base:core_headers", @@ -263,6 +283,7 @@ cc_test( tags = ["benchmark"], visibility = ["//visibility:private"], deps = [ + ":string_view", ":strings", "//absl/base:core_headers", "//absl/base:raw_logging_internal", @@ -277,7 +298,7 @@ cc_test( copts = ABSL_TEST_COPTS, visibility = ["//visibility:private"], deps = [ - ":strings", + ":string_view", "//absl/base:config", "//absl/base:core_headers", "//absl/base:dynamic_annotations", diff --git a/absl/strings/CMakeLists.txt b/absl/strings/CMakeLists.txt index 878ff4f1..1959dc91 100644 --- a/absl/strings/CMakeLists.txt +++ b/absl/strings/CMakeLists.txt @@ -14,6 +14,23 @@ # limitations under the License. # +absl_cc_library( + NAME + string_view + HDRS + string_view.h + SRCS + string_view.cc + COPTS + ${ABSL_DEFAULT_COPTS} + DEPS + absl::base + absl::config + absl::core_headers + absl::throw_delegate + PUBLIC +) + absl_cc_library( NAME strings @@ -30,7 +47,6 @@ absl_cc_library( "str_join.h" "str_replace.h" "str_split.h" - "string_view.h" "strip.h" "substitute.h" SRCS @@ -54,11 +70,11 @@ absl_cc_library( "str_cat.cc" "str_replace.cc" "str_split.cc" - "string_view.cc" "substitute.cc" COPTS ${ABSL_DEFAULT_COPTS} DEPS + absl::string_view absl::strings_internal absl::base absl::bits -- cgit v1.2.3