aboutsummaryrefslogtreecommitdiff
path: root/pw_system/BUILD.bazel
diff options
context:
space:
mode:
Diffstat (limited to 'pw_system/BUILD.bazel')
-rw-r--r--pw_system/BUILD.bazel155
1 files changed, 126 insertions, 29 deletions
diff --git a/pw_system/BUILD.bazel b/pw_system/BUILD.bazel
index d9fb2e97c..5bdd83dbc 100644
--- a/pw_system/BUILD.bazel
+++ b/pw_system/BUILD.bazel
@@ -22,11 +22,25 @@ package(default_visibility = ["//visibility:public"])
licenses(["notice"])
+constraint_setting(
+ name = "system_example_tracing_setting",
+)
+
+constraint_value(
+ name = "system_example_tracing",
+ constraint_setting = ":system_example_tracing_setting",
+)
+
pw_cc_library(
name = "config",
hdrs = [
"public/pw_system/config.h",
],
+ defines = select({
+ "//conditions:default": [
+ "PW_SYSTEM_ENABLE_TRACE_SERVICE=0",
+ ],
+ }),
)
pw_cc_library(
@@ -72,43 +86,33 @@ pw_cc_library(
"//pw_sync:lock_annotations",
"//pw_tokenizer",
],
-)
-
-pw_cc_library(
- name = "rpc_server_headers",
- hdrs = [
- "public/pw_system/rpc_server.h",
- ],
- includes = ["public"],
- deps = [
- ":config",
- ],
+ # Log backends, like assert backends, generally need to be alwayslink'ed
+ # because we don't inform Bazel correctly about dependencies on them. We
+ # only add them as deps of binary targets, not intermediate library targets,
+ # to avoid circular dependencies. But this may lead the linker to eagerly
+ # remove some symbols defined here as unused.
+ alwayslink = 1,
)
pw_cc_library(
name = "rpc_server",
- deps = [
- ":config",
- ":hdlc_rpc_server",
- ":rpc_server_headers",
- ],
-)
-
-pw_cc_library(
- name = "hdlc_rpc_server",
srcs = [
"hdlc_rpc_server.cc",
],
+ hdrs = [
+ "public/pw_system/rpc_server.h",
+ ],
includes = ["public"],
deps = [
+ ":config",
":io",
- ":rpc_server_headers",
":target_io",
"//pw_assert",
"//pw_hdlc:pw_rpc",
"//pw_hdlc:rpc_channel_output",
"//pw_sync:mutex",
"//pw_thread:thread_core",
+ "//pw_trace",
],
)
@@ -147,16 +151,26 @@ pw_cc_library(
],
includes = ["public"],
deps = [
+ ":file_manager",
":log",
":rpc_server",
":target_hooks",
":thread_snapshot_service",
+ ":transfer_service",
":work_queue",
"//pw_metric:global",
"//pw_metric:metric_service_pwpb",
"//pw_rpc/pwpb:echo_service",
"//pw_thread:thread",
- ],
+ ] + select({
+ ":system_example_tracing": [
+ ":file_service",
+ ":trace_service",
+ "//pw_trace",
+ ],
+ "//conditions:default": [
+ ],
+ }),
)
pw_cc_library(
@@ -203,13 +217,86 @@ pw_cc_library(
)
pw_cc_library(
- name = "target_hooks_headers",
+ name = "transfer_handlers",
+ srcs = [
+ "transfer_handlers.cc",
+ ],
hdrs = [
- "public/pw_system/target_hooks.h",
+ "public/pw_system/transfer_handlers.h",
],
includes = ["public"],
deps = [
- "//pw_thread:thread",
+ "//pw_persistent_ram",
+ "//pw_trace_tokenized:config",
+ "//pw_transfer",
+ ],
+)
+
+pw_cc_library(
+ name = "file_manager",
+ srcs = [
+ "file_manager.cc",
+ ],
+ hdrs = [
+ "public/pw_system/file_manager.h",
+ ],
+ includes = ["public"],
+ deps = [
+ ":config",
+ ":transfer_handlers",
+ "//pw_file:flat_file_system",
+ "//pw_persistent_ram:flat_file_system_entry",
+ ] + select({
+ ":system_example_tracing": [
+ ":trace_service",
+ ],
+ "//conditions:default": [
+ ],
+ }),
+)
+
+pw_cc_library(
+ name = "transfer_service",
+ srcs = [
+ "transfer_service.cc",
+ ],
+ hdrs = [
+ "public/pw_system/transfer_service.h",
+ ],
+ includes = ["public"],
+ deps = [
+ ":file_manager",
+ "//pw_transfer",
+ ],
+)
+
+pw_cc_library(
+ name = "file_service",
+ srcs = [
+ "file_service.cc",
+ ],
+ hdrs = [
+ "public/pw_system/file_service.h",
+ ],
+ includes = ["public"],
+ deps = [
+ ":file_manager",
+ ],
+)
+
+pw_cc_library(
+ name = "trace_service",
+ srcs = [
+ "trace_service.cc",
+ ],
+ hdrs = [
+ "public/pw_system/trace_service.h",
+ ],
+ includes = ["public"],
+ deps = [
+ ":transfer_handlers",
+ "//pw_persistent_ram",
+ "//pw_trace_tokenized:trace_service_pwpb",
],
)
@@ -221,7 +308,7 @@ pw_cc_library(
includes = ["public"],
deps = [
"//pw_thread:thread",
- "@pigweed_config//:pw_system_target_hooks_backend",
+ "@pigweed//targets:pw_system_target_hooks_backend",
],
)
@@ -230,7 +317,7 @@ pw_cc_library(
# projects. For now, assume the pre-baked OS-specific hooks are good enough.
pw_cc_library(
name = "target_hooks_multiplexer",
- visibility = ["@pigweed_config//:__pkg__"],
+ visibility = ["@pigweed//targets:__pkg__"],
deps = select({
"//pw_build/constraints/rtos:freertos": [":freertos_target_hooks"],
"//conditions:default": [":stl_target_hooks"],
@@ -242,7 +329,9 @@ pw_cc_library(
srcs = [
"stl_target_hooks.cc",
],
+ includes = ["public"],
deps = [
+ ":config",
"//pw_thread:thread",
"//pw_thread_stl:thread",
],
@@ -253,11 +342,15 @@ pw_cc_library(
srcs = [
"freertos_target_hooks.cc",
],
+ hdrs = [
+ "public/pw_system/target_hooks.h",
+ ],
+ includes = ["public"],
target_compatible_with = [
"//pw_build/constraints/rtos:freertos",
],
deps = [
- ":target_hooks_headers",
+ ":config",
"//pw_thread:thread",
"//pw_thread_freertos:thread",
],
@@ -274,7 +367,11 @@ pw_cc_binary(
"//pw_stream:sys_io_stream",
"//pw_unit_test:rpc_service",
] + select({
- "//pw_build/constraints/rtos:freertos": [],
+ "//pw_build/constraints/rtos:freertos": [
+ "//pw_tokenizer:linker_script",
+ "//targets/stm32f429i_disc1_stm32cube:linker_script",
+ "//targets/stm32f429i_disc1_stm32cube:pre_init",
+ ],
"//conditions:default": ["//targets/host_device_simulator:boot"],
}),
)