pw_assert: Reorganize backends for new pattern
- Move all of the pw_assert_basic implementation into the
pw_assert_basic.impl target.
- Enable the require_link_deps check for pw_assert.
Change-Id: Ie1f64cf0b7704a51710221d7ef02415c788a6235
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/44100
Commit-Queue: Wyatt Hepler <hepler@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Ewout van Bekkum <ewout@google.com>
diff --git a/pw_assert/BUILD.gn b/pw_assert/BUILD.gn
index 7196831..258cd13 100644
--- a/pw_assert/BUILD.gn
+++ b/pw_assert/BUILD.gn
@@ -61,8 +61,7 @@
]
public_deps = [ dir_pw_preprocessor ]
- # TODO(pwbug/372): Update projects to properly list pw_assert:impl.
- # require_link_deps = [ ":impl" ]
+ require_link_deps = [ ":impl" ]
}
# Provide "pw_assert/assert.h" in its own source set, so it can be used without
diff --git a/pw_assert_basic/BUILD.gn b/pw_assert_basic/BUILD.gn
index b0a82da..3bb9023 100644
--- a/pw_assert_basic/BUILD.gn
+++ b/pw_assert_basic/BUILD.gn
@@ -29,18 +29,6 @@
visibility = [ ":*" ]
}
-# These assert backend deps that might cause circular dependencies, since
-# pw_assert is so ubiquitous. These deps are kept separate so they can be
-# depended on from elsewhere.
-# TODO(pwbug/372): Reorganize this.
-group("pw_assert_basic.impl") {
- public_deps = [
- dir_pw_result,
- dir_pw_string,
- dir_pw_sys_io,
- ]
-}
-
pw_facade("handler") {
backend = pw_assert_basic_HANDLER_BACKEND
public_configs = [ ":public_include_path" ]
@@ -48,21 +36,35 @@
public = [ "public/pw_assert_basic/handler.h" ]
}
+# pw_assert_basic only provides the backend's interface. The implementation is
+# pulled in through pw_build_LINK_DEPS.
pw_source_set("pw_assert_basic") {
public_configs = [
":backend_config",
":public_include_path",
]
- deps = [
- "$dir_pw_assert:facade",
- "$dir_pw_preprocessor",
- pw_assert_basic_HANDLER_BACKEND,
- ]
public = [
"public/pw_assert_basic/assert_basic.h",
"public/pw_assert_basic/handler.h",
"public_overrides/pw_assert_backend/assert_backend.h",
]
+}
+
+# The assert backend deps that might cause circular dependencies, since
+# pw_assert is so ubiquitous. These deps are kept separate so they can be
+# depended on from elsewhere.
+pw_source_set("pw_assert_basic.impl") {
+ public_deps = [
+ dir_pw_result,
+ dir_pw_string,
+ dir_pw_sys_io,
+ ]
+ deps = [
+ ":pw_assert_basic",
+ "$dir_pw_assert:facade",
+ "$dir_pw_preprocessor",
+ pw_assert_basic_HANDLER_BACKEND,
+ ]
sources = [ "assert_basic.cc" ]
}
diff --git a/pw_assert_log/BUILD.gn b/pw_assert_log/BUILD.gn
index 46ce4c8..742c8be 100644
--- a/pw_assert_log/BUILD.gn
+++ b/pw_assert_log/BUILD.gn
@@ -46,9 +46,8 @@
sources = [ "assert_log.cc" ]
}
-# TODO(pwbug/372): Reorganize this.
-# pw_assert_log doesn't have deps with potential circular dependencies, so
-# "deps" can be empty.
+# pw_assert_log doesn't have deps with potential circular dependencies, so this
+# impl group can be empty.
group("pw_assert_log.impl") {
}