pw_log: enable require_link_deps
Enables require_link_deps for the pw_log facade.
Migrates the upstream log backends to use the .impl targets.
Deprecates the pw_log_tokenized:log_backend target as
pw_log_tokenized can now be directly used thanks to
pw_build_LINK_DEPS.
Change-Id: I1a0ba11f4974f070ba7863a8007503f6cc628c7a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/45000
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_log/BUILD.gn b/pw_log/BUILD.gn
index d94926b..52082bc 100644
--- a/pw_log/BUILD.gn
+++ b/pw_log/BUILD.gn
@@ -35,8 +35,7 @@
"public/pw_log/shorter.h",
]
- # TODO(pwbug/372): Update projects to properly list pw_log:impl.
- # require_link_deps = [ ":impl" ]
+ require_link_deps = [ ":impl" ]
}
# pw_log is low-level and ubiquitous. Because of this, it can often cause
diff --git a/pw_log_basic/BUILD.gn b/pw_log_basic/BUILD.gn
index a82331f..a478ea2 100644
--- a/pw_log_basic/BUILD.gn
+++ b/pw_log_basic/BUILD.gn
@@ -45,8 +45,14 @@
"public_overrides/pw_log_backend/log_backend.h",
]
public_deps = [ dir_pw_preprocessor ]
+}
+# The log backend deps that might cause circular dependencies, since
+# pw_log is so ubiquitous. These deps are kept separate so they can be
+# depended on from elsewhere.
+pw_source_set("pw_log_basic.impl") {
deps = [
+ ":pw_log_basic",
"$dir_pw_log:facade",
dir_pw_string,
dir_pw_sys_io,
@@ -66,13 +72,6 @@
]
}
-# TODO(ewout): Fill this out once all users are using link deps.
-# The log backend deps that might cause circular dependencies, since
-# pw_log is so ubiquitous. These deps are kept separate so they can be
-# depended on from elsewhere.
-pw_source_set("pw_log_basic.impl") {
-}
-
pw_doc_group("docs") {
sources = [ "docs.rst" ]
}
diff --git a/pw_log_tokenized/BUILD.gn b/pw_log_tokenized/BUILD.gn
index 0d3831b..a89054d 100644
--- a/pw_log_tokenized/BUILD.gn
+++ b/pw_log_tokenized/BUILD.gn
@@ -28,7 +28,7 @@
pw_log_tokenized_CONFIG = pw_build_DEFAULT_MODULE_CONFIG
}
-config("public_includes") {
+config("public_include_path") {
include_dirs = [ "public" ]
visibility = [ ":*" ]
}
@@ -41,8 +41,8 @@
# This target provides the backend for pw_log.
pw_source_set("pw_log_tokenized") {
public_configs = [
- ":public_includes",
":backend_config",
+ ":public_include_path",
]
public_deps = [
"$dir_pw_log:facade",
@@ -53,35 +53,24 @@
public = [
"public/pw_log_tokenized/config.h",
"public/pw_log_tokenized/log_tokenized.h",
+ "public_overrides/pw_log_backend/log_backend.h",
]
}
-# TODO(ewout): remove this once all users are migrated off this target, using
-# link deps for the log impl instead.
-pw_source_set("log_backend") {
- public_configs = [ ":backend_config" ]
- public_deps = [ ":pw_log_tokenized" ]
- public = [ "public_overrides/pw_log_backend/log_backend.h" ]
- deps = [ "$dir_pw_tokenizer:global_handler_with_payload" ]
-}
-
-# TODO(ewout): remove this once all users are migrated off this target, using
-# pw_log_tokenized and its pw_log_tokenized.impl instead.
-pw_source_set("log_backend.impl") {
-}
-
-# TODO(ewout): Fill this out once all users are using link deps.
# The log backend deps that might cause circular dependencies, since
# pw_log is so ubiquitous. These deps are kept separate so they can be
# depended on from elsewhere.
pw_source_set("pw_log_tokenized.impl") {
- public_deps = [ ":log_backend" ]
+ deps = [
+ ":pw_log_tokenized",
+ "$dir_pw_tokenizer:global_handler_with_payload",
+ ]
}
# This target provides a backend for pw_tokenizer that encodes tokenized logs as
# Base64, encodes them into HDLC frames, and writes them over sys_io.
pw_source_set("base64_over_hdlc") {
- public_configs = [ ":public_includes" ]
+ public_configs = [ ":public_include_path" ]
public = [ "public/pw_log_tokenized/base64_over_hdlc.h" ]
sources = [ "base64_over_hdlc.cc" ]
deps = [