pw_rpc: Add size report for server
This change adds a size report showing the memory cost of the RPC server
both by itself and with a nanopb service.
Change-Id: I5ed465888b757e706de90fc4b4a7247f2930dd3a
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/18246
Commit-Queue: Alexei Frolov <frolv@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 9a3478c..fbf3a74 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -15,9 +15,11 @@
# gn-format disable
import("//build_overrides/pigweed.gni")
+import("$dir_pw_bloat/bloat.gni")
import("$dir_pw_build/target_types.gni")
import("$dir_pw_docgen/docs.gni")
import("$dir_pw_protobuf_compiler/proto.gni")
+import("$dir_pw_third_party/nanopb/nanopb.gni")
import("$dir_pw_unit_test/test.gni")
config("default_config") {
include_dirs = [ "public" ]
@@ -116,6 +118,29 @@
"pw_rpc_protos/packet.proto",
]
group_deps = [ "nanopb:docs" ]
+ report_deps = [ ":server_size" ]
+}
+
+pw_size_report("server_size") {
+ title = "Pigweed RPC server size report"
+
+ binaries = [
+ {
+ target = "size_report:server_only"
+ base = "size_report:base"
+ label = "Server by itself"
+ },
+ ]
+
+ if (dir_pw_third_party_nanopb != "") {
+ binaries += [
+ {
+ target = "size_report:server_with_echo_service"
+ base = "size_report:base_with_nanopb"
+ label = "Server with a registered nanopb EchoService"
+ },
+ ]
+ }
}
pw_test_group("tests") {