pw_span: Restrict visibility
Restrict visibility of pw_span since it is provided by pw_polyfill.
Change-Id: I268b0e5f6eb302d9fd27f3187643814b68ce7318
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/30044
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_polyfill/BUILD.gn b/pw_polyfill/BUILD.gn
index ff9f4db..b173e06 100644
--- a/pw_polyfill/BUILD.gn
+++ b/pw_polyfill/BUILD.gn
@@ -50,7 +50,7 @@
remove_public_deps = [ "*" ]
public_deps = [
":standard_library",
- "$dir_pw_span",
+ "$dir_pw_span:polyfill",
]
inputs = [
"public_overrides/array",
diff --git a/pw_span/BUILD.gn b/pw_span/BUILD.gn
index bead2ef..e1c3f11 100644
--- a/pw_span/BUILD.gn
+++ b/pw_span/BUILD.gn
@@ -18,19 +18,34 @@
import("$dir_pw_docgen/docs.gni")
import("$dir_pw_unit_test/test.gni")
-config("default_config") {
- include_dirs = [
- "public",
- "public_overrides",
- ]
+config("public_config") {
+ include_dirs = [ "public" ]
+ visibility = [ ":*" ]
}
+config("overrides_config") {
+ include_dirs = [ "public_overrides" ]
+ visibility = [ ":*" ]
+}
+
+# This source set provides the <span> header, which is accessed only through
+# pw_polyfill.
+pw_source_set("polyfill") {
+ remove_public_deps = [ "*" ]
+ public_configs = [ ":overrides_config" ]
+ public_deps = [ ":pw_span" ]
+ public = [ "public_overrides/span" ]
+ visibility = [ "$dir_pw_polyfill:*" ]
+}
+
+# This source set provides the internal span.h header included by <span>. This
+# source set is only used by pw_polyfill, so its visibility is restricted.
pw_source_set("pw_span") {
remove_public_deps = [ "*" ]
- public_configs = [ ":default_config" ]
+ public_configs = [ ":public_config" ]
public_deps = [ "$dir_pw_polyfill" ]
- public = [ "public_overrides/span" ]
sources = [ "public/pw_span/internal/span.h" ]
+ visibility = [ ":*" ]
}
pw_test_group("tests") {