pw_hdlc_lite: Break dependencies apart
Separate encoder and decoder dependencies to allow projects to import
one without the other, but keep them as the core of `pw_hdlc_lite`.
This fixes a circular dependency when encoding tokenized logs for
HDLC-Lite RPCs, since `pw_hdlc_lite:decoder` depends on logging, and
tokenized logging only needs `pw_hdlc_lite:encoder`.
Change-Id: Id94821cb3e12c9b772b45ea17e640d833a6732ed
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/19145
Commit-Queue: Carlos Chinchilla <cachinchilla@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_hdlc_lite/BUILD.gn b/pw_hdlc_lite/BUILD.gn
index 1d88ed7..9a13e82 100644
--- a/pw_hdlc_lite/BUILD.gn
+++ b/pw_hdlc_lite/BUILD.gn
@@ -22,24 +22,24 @@
include_dirs = [ "public" ]
}
-pw_source_set("pw_hdlc_lite") {
- public_configs = [ ":default_config" ]
- public = [
- "public/pw_hdlc_lite/decoder.h",
- "public/pw_hdlc_lite/encoder.h",
- "public/pw_hdlc_lite/sys_io_stream.h",
+group("pw_hdlc_lite") {
+ public_deps = [
+ ":decoder",
+ ":encoder",
]
+}
+
+pw_source_set("decoder") {
+ public_configs = [ ":default_config" ]
+ public = [ "public/pw_hdlc_lite/decoder.h" ]
sources = [
"decoder.cc",
- "encoder.cc",
"pw_hdlc_lite_private/protocol.h",
]
public_deps = [
dir_pw_bytes,
dir_pw_result,
dir_pw_status,
- dir_pw_stream,
- dir_pw_sys_io,
]
deps = [
dir_pw_checksum,
@@ -48,6 +48,26 @@
friend = [ ":*" ]
}
+pw_source_set("encoder") {
+ public_configs = [ ":default_config" ]
+ public = [
+ "public/pw_hdlc_lite/encoder.h",
+ "public/pw_hdlc_lite/sys_io_stream.h",
+ ]
+ sources = [
+ "encoder.cc",
+ "pw_hdlc_lite_private/protocol.h",
+ ]
+ public_deps = [
+ dir_pw_bytes,
+ dir_pw_status,
+ dir_pw_stream,
+ dir_pw_sys_io,
+ ]
+ deps = [ dir_pw_checksum ]
+ friend = [ ":*" ]
+}
+
pw_source_set("pw_rpc") {
public_configs = [ ":default_config" ]
public = [