1*61c4878aSAndroid Build Coastguard Worker# Copyright 2021 The Pigweed Authors 2*61c4878aSAndroid Build Coastguard Worker# 3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of 5*61c4878aSAndroid Build Coastguard Worker# the License at 6*61c4878aSAndroid Build Coastguard Worker# 7*61c4878aSAndroid Build Coastguard Worker# https://www.apache.org/licenses/LICENSE-2.0 8*61c4878aSAndroid Build Coastguard Worker# 9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under 13*61c4878aSAndroid Build Coastguard Worker# the License. 14*61c4878aSAndroid Build Coastguard Worker 15*61c4878aSAndroid Build Coastguard Workerload("@rules_python//python:proto.bzl", "py_proto_library") 16*61c4878aSAndroid Build Coastguard Workerload("//pw_build:pw_cc_binary.bzl", "pw_cc_binary") 17*61c4878aSAndroid Build Coastguard Workerload("//pw_build:pw_facade.bzl", "pw_facade") 18*61c4878aSAndroid Build Coastguard Workerload( 19*61c4878aSAndroid Build Coastguard Worker "//pw_protobuf_compiler:pw_proto_library.bzl", 20*61c4878aSAndroid Build Coastguard Worker "pw_proto_filegroup", 21*61c4878aSAndroid Build Coastguard Worker "pwpb_proto_library", 22*61c4878aSAndroid Build Coastguard Worker "pwpb_rpc_proto_library", 23*61c4878aSAndroid Build Coastguard Worker) 24*61c4878aSAndroid Build Coastguard Workerload("//pw_system/py:console.bzl", "device_console", "device_simulator_console") 25*61c4878aSAndroid Build Coastguard Workerload("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") 26*61c4878aSAndroid Build Coastguard Workerload("//targets/host_device_simulator:transition.bzl", "host_device_simulator_binary") 27*61c4878aSAndroid Build Coastguard Workerload("//targets/rp2040:flash.bzl", "flash_rp2040", "flash_rp2350") 28*61c4878aSAndroid Build Coastguard Workerload("//targets/rp2040:transition.bzl", "rp2040_binary", "rp2350_binary") 29*61c4878aSAndroid Build Coastguard Worker 30*61c4878aSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"]) 31*61c4878aSAndroid Build Coastguard Worker 32*61c4878aSAndroid Build Coastguard Workerlicenses(["notice"]) 33*61c4878aSAndroid Build Coastguard Worker 34*61c4878aSAndroid Build Coastguard Workercc_library( 35*61c4878aSAndroid Build Coastguard Worker name = "config", 36*61c4878aSAndroid Build Coastguard Worker hdrs = [ 37*61c4878aSAndroid Build Coastguard Worker "public/pw_system/config.h", 38*61c4878aSAndroid Build Coastguard Worker ], 39*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 40*61c4878aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 41*61c4878aSAndroid Build Coastguard Worker deps = [":config_override"], 42*61c4878aSAndroid Build Coastguard Worker) 43*61c4878aSAndroid Build Coastguard Worker 44*61c4878aSAndroid Build Coastguard Workerlabel_flag( 45*61c4878aSAndroid Build Coastguard Worker name = "config_override", 46*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":default_config", 47*61c4878aSAndroid Build Coastguard Worker) 48*61c4878aSAndroid Build Coastguard Worker 49*61c4878aSAndroid Build Coastguard Workercc_library( 50*61c4878aSAndroid Build Coastguard Worker name = "default_config", 51*61c4878aSAndroid Build Coastguard Worker defines = select({ 52*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:enabled": [], 53*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [ 54*61c4878aSAndroid Build Coastguard Worker "PW_SYSTEM_ENABLE_CRASH_HANDLER=0", 55*61c4878aSAndroid Build Coastguard Worker ], 56*61c4878aSAndroid Build Coastguard Worker }), 57*61c4878aSAndroid Build Coastguard Worker) 58*61c4878aSAndroid Build Coastguard Worker 59*61c4878aSAndroid Build Coastguard Workercc_library( 60*61c4878aSAndroid Build Coastguard Worker name = "pw_system", 61*61c4878aSAndroid Build Coastguard Worker deps = [ 62*61c4878aSAndroid Build Coastguard Worker ":init", 63*61c4878aSAndroid Build Coastguard Worker ":io", 64*61c4878aSAndroid Build Coastguard Worker ":extra_platform_libs", 65*61c4878aSAndroid Build Coastguard Worker ":target_hooks", 66*61c4878aSAndroid Build Coastguard Worker ":work_queue", 67*61c4878aSAndroid Build Coastguard Worker # pw_system has (transitive) dependencies on pw_assert and pw_log. So, 68*61c4878aSAndroid Build Coastguard Worker # we add deps on the backend_impl here, saving the user from having to 69*61c4878aSAndroid Build Coastguard Worker # add them manually to their cc_binary target. 70*61c4878aSAndroid Build Coastguard Worker # 71*61c4878aSAndroid Build Coastguard Worker # When implementing a backend for pw_assert or pw_log, *do not* depend 72*61c4878aSAndroid Build Coastguard Worker # on //pw_system:pw_system. Instead, depend on the appropriate 73*61c4878aSAndroid Build Coastguard Worker # component library. See :log_backend, below, for an examples. 74*61c4878aSAndroid Build Coastguard Worker "//pw_assert:check_backend_impl", 75*61c4878aSAndroid Build Coastguard Worker "//pw_assert:assert_backend_impl", 76*61c4878aSAndroid Build Coastguard Worker "//pw_log:backend_impl", 77*61c4878aSAndroid Build Coastguard Worker ], 78*61c4878aSAndroid Build Coastguard Worker) 79*61c4878aSAndroid Build Coastguard Worker 80*61c4878aSAndroid Build Coastguard Worker# Any platform-specific pw_system components. At the very least, this should 81*61c4878aSAndroid Build Coastguard Worker# include platform-specific initialization code. It may also include linker 82*61c4878aSAndroid Build Coastguard Worker# scripts. 83*61c4878aSAndroid Build Coastguard Worker# 84*61c4878aSAndroid Build Coastguard Worker# TODO: https://github.com/bazelbuild/bazel/issues/22457 - Recommend using 85*61c4878aSAndroid Build Coastguard Worker# @bazel_tool//tools/cpp:link_extra_libs instead, once they're not propagated 86*61c4878aSAndroid Build Coastguard Worker# to the exec configuration. 87*61c4878aSAndroid Build Coastguard Workerlabel_flag( 88*61c4878aSAndroid Build Coastguard Worker name = "extra_platform_libs", 89*61c4878aSAndroid Build Coastguard Worker build_setting_default = "//targets/host_device_simulator:boot", 90*61c4878aSAndroid Build Coastguard Worker) 91*61c4878aSAndroid Build Coastguard Worker 92*61c4878aSAndroid Build Coastguard Workercc_library( 93*61c4878aSAndroid Build Coastguard Worker name = "log", 94*61c4878aSAndroid Build Coastguard Worker srcs = [ 95*61c4878aSAndroid Build Coastguard Worker "log.cc", 96*61c4878aSAndroid Build Coastguard Worker ], 97*61c4878aSAndroid Build Coastguard Worker hdrs = [ 98*61c4878aSAndroid Build Coastguard Worker "public/pw_system/log.h", 99*61c4878aSAndroid Build Coastguard Worker ], 100*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 101*61c4878aSAndroid Build Coastguard Worker deps = [ 102*61c4878aSAndroid Build Coastguard Worker ":config", 103*61c4878aSAndroid Build Coastguard Worker ":rpc_server", 104*61c4878aSAndroid Build Coastguard Worker "//pw_log_rpc:log_service", 105*61c4878aSAndroid Build Coastguard Worker "//pw_log_rpc:rpc_log_drain", 106*61c4878aSAndroid Build Coastguard Worker "//pw_log_rpc:rpc_log_drain_thread", 107*61c4878aSAndroid Build Coastguard Worker "//pw_multisink", 108*61c4878aSAndroid Build Coastguard Worker "//pw_sync:lock_annotations", 109*61c4878aSAndroid Build Coastguard Worker "//pw_sync:mutex", 110*61c4878aSAndroid Build Coastguard Worker ], 111*61c4878aSAndroid Build Coastguard Worker) 112*61c4878aSAndroid Build Coastguard Worker 113*61c4878aSAndroid Build Coastguard Workercc_library( 114*61c4878aSAndroid Build Coastguard Worker name = "log_backend", 115*61c4878aSAndroid Build Coastguard Worker srcs = [ 116*61c4878aSAndroid Build Coastguard Worker "log_backend.cc", 117*61c4878aSAndroid Build Coastguard Worker ], 118*61c4878aSAndroid Build Coastguard Worker deps = [ 119*61c4878aSAndroid Build Coastguard Worker ":config", 120*61c4878aSAndroid Build Coastguard Worker ":log", 121*61c4878aSAndroid Build Coastguard Worker "//pw_bytes", 122*61c4878aSAndroid Build Coastguard Worker "//pw_chrono:system_clock", 123*61c4878aSAndroid Build Coastguard Worker "//pw_log:proto_utils", 124*61c4878aSAndroid Build Coastguard Worker "//pw_log:pw_log.facade", 125*61c4878aSAndroid Build Coastguard Worker "//pw_log_string:handler.facade", 126*61c4878aSAndroid Build Coastguard Worker "//pw_log_tokenized:handler.facade", 127*61c4878aSAndroid Build Coastguard Worker "//pw_log_tokenized:headers", 128*61c4878aSAndroid Build Coastguard Worker "//pw_metric:global", 129*61c4878aSAndroid Build Coastguard Worker "//pw_multisink", 130*61c4878aSAndroid Build Coastguard Worker "//pw_result", 131*61c4878aSAndroid Build Coastguard Worker "//pw_string", 132*61c4878aSAndroid Build Coastguard Worker "//pw_sync:interrupt_spin_lock", 133*61c4878aSAndroid Build Coastguard Worker "//pw_sync:lock_annotations", 134*61c4878aSAndroid Build Coastguard Worker "//pw_tokenizer", 135*61c4878aSAndroid Build Coastguard Worker ], 136*61c4878aSAndroid Build Coastguard Worker # Log backends, like assert backends, generally need to be alwayslink'ed 137*61c4878aSAndroid Build Coastguard Worker # because we don't inform Bazel correctly about dependencies on them. We 138*61c4878aSAndroid Build Coastguard Worker # only add them as deps of binary targets, not intermediate library targets, 139*61c4878aSAndroid Build Coastguard Worker # to avoid circular dependencies. But this may lead the linker to eagerly 140*61c4878aSAndroid Build Coastguard Worker # remove some symbols defined here as unused. 141*61c4878aSAndroid Build Coastguard Worker alwayslink = 1, 142*61c4878aSAndroid Build Coastguard Worker) 143*61c4878aSAndroid Build Coastguard Worker 144*61c4878aSAndroid Build Coastguard Workerpw_facade( 145*61c4878aSAndroid Build Coastguard Worker name = "rpc_server", 146*61c4878aSAndroid Build Coastguard Worker hdrs = [ 147*61c4878aSAndroid Build Coastguard Worker "public/pw_system/rpc_server.h", 148*61c4878aSAndroid Build Coastguard Worker ], 149*61c4878aSAndroid Build Coastguard Worker backend = ":rpc_server_backend", 150*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 151*61c4878aSAndroid Build Coastguard Worker deps = [ 152*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread_core", 153*61c4878aSAndroid Build Coastguard Worker ], 154*61c4878aSAndroid Build Coastguard Worker) 155*61c4878aSAndroid Build Coastguard Worker 156*61c4878aSAndroid Build Coastguard Workerlabel_flag( 157*61c4878aSAndroid Build Coastguard Worker name = "rpc_server_backend", 158*61c4878aSAndroid Build Coastguard Worker build_setting_default = "//pw_system:hdlc_rpc_server", 159*61c4878aSAndroid Build Coastguard Worker) 160*61c4878aSAndroid Build Coastguard Worker 161*61c4878aSAndroid Build Coastguard Workercc_library( 162*61c4878aSAndroid Build Coastguard Worker name = "hdlc_rpc_server", 163*61c4878aSAndroid Build Coastguard Worker srcs = [ 164*61c4878aSAndroid Build Coastguard Worker "hdlc_rpc_server.cc", 165*61c4878aSAndroid Build Coastguard Worker ], 166*61c4878aSAndroid Build Coastguard Worker deps = [ 167*61c4878aSAndroid Build Coastguard Worker ":config", 168*61c4878aSAndroid Build Coastguard Worker ":io", 169*61c4878aSAndroid Build Coastguard Worker ":rpc_server.facade", 170*61c4878aSAndroid Build Coastguard Worker "//pw_assert", 171*61c4878aSAndroid Build Coastguard Worker "//pw_hdlc", 172*61c4878aSAndroid Build Coastguard Worker "//pw_hdlc:default_addresses", 173*61c4878aSAndroid Build Coastguard Worker "//pw_hdlc:rpc_channel_output", 174*61c4878aSAndroid Build Coastguard Worker "//pw_sync:mutex", 175*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread_core", 176*61c4878aSAndroid Build Coastguard Worker "//pw_trace", 177*61c4878aSAndroid Build Coastguard Worker ], 178*61c4878aSAndroid Build Coastguard Worker) 179*61c4878aSAndroid Build Coastguard Worker 180*61c4878aSAndroid Build Coastguard Workercc_library( 181*61c4878aSAndroid Build Coastguard Worker name = "thread_snapshot_service", 182*61c4878aSAndroid Build Coastguard Worker srcs = [ 183*61c4878aSAndroid Build Coastguard Worker "thread_snapshot_service.cc", 184*61c4878aSAndroid Build Coastguard Worker ], 185*61c4878aSAndroid Build Coastguard Worker hdrs = [ 186*61c4878aSAndroid Build Coastguard Worker "public/pw_system/thread_snapshot_service.h", 187*61c4878aSAndroid Build Coastguard Worker ], 188*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 189*61c4878aSAndroid Build Coastguard Worker deps = [ 190*61c4878aSAndroid Build Coastguard Worker "//pw_rpc", 191*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread_snapshot_service", 192*61c4878aSAndroid Build Coastguard Worker ], 193*61c4878aSAndroid Build Coastguard Worker) 194*61c4878aSAndroid Build Coastguard Worker 195*61c4878aSAndroid Build Coastguard Workerpw_facade( 196*61c4878aSAndroid Build Coastguard Worker name = "io", 197*61c4878aSAndroid Build Coastguard Worker hdrs = [ 198*61c4878aSAndroid Build Coastguard Worker "public/pw_system/io.h", 199*61c4878aSAndroid Build Coastguard Worker ], 200*61c4878aSAndroid Build Coastguard Worker backend = ":io_backend", 201*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 202*61c4878aSAndroid Build Coastguard Worker deps = [ 203*61c4878aSAndroid Build Coastguard Worker "//pw_stream", 204*61c4878aSAndroid Build Coastguard Worker ], 205*61c4878aSAndroid Build Coastguard Worker) 206*61c4878aSAndroid Build Coastguard Worker 207*61c4878aSAndroid Build Coastguard Workerlabel_flag( 208*61c4878aSAndroid Build Coastguard Worker name = "io_backend", 209*61c4878aSAndroid Build Coastguard Worker build_setting_default = "//pw_system:sys_io_target_io", 210*61c4878aSAndroid Build Coastguard Worker) 211*61c4878aSAndroid Build Coastguard Worker 212*61c4878aSAndroid Build Coastguard Workerpw_facade( 213*61c4878aSAndroid Build Coastguard Worker name = "device_handler", 214*61c4878aSAndroid Build Coastguard Worker hdrs = [ 215*61c4878aSAndroid Build Coastguard Worker "public/pw_system/device_handler.h", 216*61c4878aSAndroid Build Coastguard Worker ], 217*61c4878aSAndroid Build Coastguard Worker backend = ":device_handler_backend", 218*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 219*61c4878aSAndroid Build Coastguard Worker deps = [ 220*61c4878aSAndroid Build Coastguard Worker "//pw_snapshot:snapshot_proto_pwpb", 221*61c4878aSAndroid Build Coastguard Worker ], 222*61c4878aSAndroid Build Coastguard Worker) 223*61c4878aSAndroid Build Coastguard Worker 224*61c4878aSAndroid Build Coastguard Workerlabel_flag( 225*61c4878aSAndroid Build Coastguard Worker name = "device_handler_backend", 226*61c4878aSAndroid Build Coastguard Worker build_setting_default = "//pw_system:unknown_device_handler", 227*61c4878aSAndroid Build Coastguard Worker) 228*61c4878aSAndroid Build Coastguard Worker 229*61c4878aSAndroid Build Coastguard Workercc_library( 230*61c4878aSAndroid Build Coastguard Worker name = "unknown_device_handler", 231*61c4878aSAndroid Build Coastguard Worker srcs = [ 232*61c4878aSAndroid Build Coastguard Worker "unknown_device_handler.cc", 233*61c4878aSAndroid Build Coastguard Worker ], 234*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 235*61c4878aSAndroid Build Coastguard Worker deps = [ 236*61c4878aSAndroid Build Coastguard Worker ":device_handler.facade", 237*61c4878aSAndroid Build Coastguard Worker ], 238*61c4878aSAndroid Build Coastguard Worker) 239*61c4878aSAndroid Build Coastguard Worker 240*61c4878aSAndroid Build Coastguard Workercc_library( 241*61c4878aSAndroid Build Coastguard Worker name = "init", 242*61c4878aSAndroid Build Coastguard Worker srcs = [ 243*61c4878aSAndroid Build Coastguard Worker "init.cc", 244*61c4878aSAndroid Build Coastguard Worker ], 245*61c4878aSAndroid Build Coastguard Worker hdrs = [ 246*61c4878aSAndroid Build Coastguard Worker "public/pw_system/init.h", 247*61c4878aSAndroid Build Coastguard Worker ], 248*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 249*61c4878aSAndroid Build Coastguard Worker deps = [ 250*61c4878aSAndroid Build Coastguard Worker ":device_service", 251*61c4878aSAndroid Build Coastguard Worker ":file_manager", 252*61c4878aSAndroid Build Coastguard Worker ":file_service", 253*61c4878aSAndroid Build Coastguard Worker ":log", 254*61c4878aSAndroid Build Coastguard Worker ":rpc_server", 255*61c4878aSAndroid Build Coastguard Worker ":target_hooks", 256*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service", 257*61c4878aSAndroid Build Coastguard Worker ":trace_service", 258*61c4878aSAndroid Build Coastguard Worker ":transfer_service", 259*61c4878aSAndroid Build Coastguard Worker ":work_queue", 260*61c4878aSAndroid Build Coastguard Worker "//pw_metric:global", 261*61c4878aSAndroid Build Coastguard Worker "//pw_metric:metric_service_pwpb", 262*61c4878aSAndroid Build Coastguard Worker "//pw_rpc/pwpb:echo_service", 263*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 264*61c4878aSAndroid Build Coastguard Worker ] + select({ 265*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:enabled": [ 266*61c4878aSAndroid Build Coastguard Worker ":crash_handler", 267*61c4878aSAndroid Build Coastguard Worker ":crash_snapshot", 268*61c4878aSAndroid Build Coastguard Worker ], 269*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [], 270*61c4878aSAndroid Build Coastguard Worker }), 271*61c4878aSAndroid Build Coastguard Worker) 272*61c4878aSAndroid Build Coastguard Worker 273*61c4878aSAndroid Build Coastguard Workercc_library( 274*61c4878aSAndroid Build Coastguard Worker name = "work_queue", 275*61c4878aSAndroid Build Coastguard Worker srcs = [ 276*61c4878aSAndroid Build Coastguard Worker "work_queue.cc", 277*61c4878aSAndroid Build Coastguard Worker ], 278*61c4878aSAndroid Build Coastguard Worker hdrs = [ 279*61c4878aSAndroid Build Coastguard Worker "public/pw_system/work_queue.h", 280*61c4878aSAndroid Build Coastguard Worker ], 281*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 282*61c4878aSAndroid Build Coastguard Worker deps = [ 283*61c4878aSAndroid Build Coastguard Worker ":config", 284*61c4878aSAndroid Build Coastguard Worker "//pw_work_queue", 285*61c4878aSAndroid Build Coastguard Worker ], 286*61c4878aSAndroid Build Coastguard Worker) 287*61c4878aSAndroid Build Coastguard Worker 288*61c4878aSAndroid Build Coastguard Workercc_library( 289*61c4878aSAndroid Build Coastguard Worker name = "sys_io_target_io", 290*61c4878aSAndroid Build Coastguard Worker srcs = [ 291*61c4878aSAndroid Build Coastguard Worker "sys_io_target_io.cc", 292*61c4878aSAndroid Build Coastguard Worker ], 293*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 294*61c4878aSAndroid Build Coastguard Worker deps = [ 295*61c4878aSAndroid Build Coastguard Worker ":io.facade", 296*61c4878aSAndroid Build Coastguard Worker "//pw_stream", 297*61c4878aSAndroid Build Coastguard Worker "//pw_stream:sys_io_stream", 298*61c4878aSAndroid Build Coastguard Worker ], 299*61c4878aSAndroid Build Coastguard Worker) 300*61c4878aSAndroid Build Coastguard Worker 301*61c4878aSAndroid Build Coastguard Workercc_library( 302*61c4878aSAndroid Build Coastguard Worker name = "socket_target_io", 303*61c4878aSAndroid Build Coastguard Worker srcs = [ 304*61c4878aSAndroid Build Coastguard Worker "socket_target_io.cc", 305*61c4878aSAndroid Build Coastguard Worker ], 306*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 307*61c4878aSAndroid Build Coastguard Worker deps = [ 308*61c4878aSAndroid Build Coastguard Worker ":config", 309*61c4878aSAndroid Build Coastguard Worker ":io.facade", 310*61c4878aSAndroid Build Coastguard Worker "//pw_assert", 311*61c4878aSAndroid Build Coastguard Worker "//pw_stream", 312*61c4878aSAndroid Build Coastguard Worker "//pw_stream:socket_stream", 313*61c4878aSAndroid Build Coastguard Worker ], 314*61c4878aSAndroid Build Coastguard Worker) 315*61c4878aSAndroid Build Coastguard Worker 316*61c4878aSAndroid Build Coastguard Workercc_library( 317*61c4878aSAndroid Build Coastguard Worker name = "transfer_handlers", 318*61c4878aSAndroid Build Coastguard Worker srcs = [ 319*61c4878aSAndroid Build Coastguard Worker "transfer_handlers.cc", 320*61c4878aSAndroid Build Coastguard Worker ], 321*61c4878aSAndroid Build Coastguard Worker hdrs = [ 322*61c4878aSAndroid Build Coastguard Worker "public/pw_system/transfer_handlers.h", 323*61c4878aSAndroid Build Coastguard Worker ], 324*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 325*61c4878aSAndroid Build Coastguard Worker deps = [ 326*61c4878aSAndroid Build Coastguard Worker ":config", 327*61c4878aSAndroid Build Coastguard Worker "//pw_persistent_ram", 328*61c4878aSAndroid Build Coastguard Worker "//pw_trace_tokenized:config", 329*61c4878aSAndroid Build Coastguard Worker "//pw_transfer", 330*61c4878aSAndroid Build Coastguard Worker ], 331*61c4878aSAndroid Build Coastguard Worker) 332*61c4878aSAndroid Build Coastguard Worker 333*61c4878aSAndroid Build Coastguard Workercc_library( 334*61c4878aSAndroid Build Coastguard Worker name = "file_manager", 335*61c4878aSAndroid Build Coastguard Worker srcs = [ 336*61c4878aSAndroid Build Coastguard Worker "file_manager.cc", 337*61c4878aSAndroid Build Coastguard Worker ], 338*61c4878aSAndroid Build Coastguard Worker hdrs = [ 339*61c4878aSAndroid Build Coastguard Worker "public/pw_system/file_manager.h", 340*61c4878aSAndroid Build Coastguard Worker ], 341*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 342*61c4878aSAndroid Build Coastguard Worker deps = [ 343*61c4878aSAndroid Build Coastguard Worker ":config", 344*61c4878aSAndroid Build Coastguard Worker ":trace_service", 345*61c4878aSAndroid Build Coastguard Worker ":transfer_handlers", 346*61c4878aSAndroid Build Coastguard Worker "//pw_file:flat_file_system", 347*61c4878aSAndroid Build Coastguard Worker "//pw_persistent_ram:flat_file_system_entry", 348*61c4878aSAndroid Build Coastguard Worker ] + select({ 349*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:enabled": [ 350*61c4878aSAndroid Build Coastguard Worker ":crash_snapshot", 351*61c4878aSAndroid Build Coastguard Worker ], 352*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [], 353*61c4878aSAndroid Build Coastguard Worker }), 354*61c4878aSAndroid Build Coastguard Worker) 355*61c4878aSAndroid Build Coastguard Worker 356*61c4878aSAndroid Build Coastguard Workercc_library( 357*61c4878aSAndroid Build Coastguard Worker name = "transfer_service", 358*61c4878aSAndroid Build Coastguard Worker srcs = [ 359*61c4878aSAndroid Build Coastguard Worker "transfer_service.cc", 360*61c4878aSAndroid Build Coastguard Worker ], 361*61c4878aSAndroid Build Coastguard Worker hdrs = [ 362*61c4878aSAndroid Build Coastguard Worker "public/pw_system/transfer_service.h", 363*61c4878aSAndroid Build Coastguard Worker ], 364*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 365*61c4878aSAndroid Build Coastguard Worker deps = [ 366*61c4878aSAndroid Build Coastguard Worker ":file_manager", 367*61c4878aSAndroid Build Coastguard Worker "//pw_transfer", 368*61c4878aSAndroid Build Coastguard Worker ], 369*61c4878aSAndroid Build Coastguard Worker) 370*61c4878aSAndroid Build Coastguard Worker 371*61c4878aSAndroid Build Coastguard Workercc_library( 372*61c4878aSAndroid Build Coastguard Worker name = "file_service", 373*61c4878aSAndroid Build Coastguard Worker srcs = [ 374*61c4878aSAndroid Build Coastguard Worker "file_service.cc", 375*61c4878aSAndroid Build Coastguard Worker ], 376*61c4878aSAndroid Build Coastguard Worker hdrs = [ 377*61c4878aSAndroid Build Coastguard Worker "public/pw_system/file_service.h", 378*61c4878aSAndroid Build Coastguard Worker ], 379*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 380*61c4878aSAndroid Build Coastguard Worker deps = [ 381*61c4878aSAndroid Build Coastguard Worker ":file_manager", 382*61c4878aSAndroid Build Coastguard Worker ], 383*61c4878aSAndroid Build Coastguard Worker) 384*61c4878aSAndroid Build Coastguard Worker 385*61c4878aSAndroid Build Coastguard Workercc_library( 386*61c4878aSAndroid Build Coastguard Worker name = "trace_service", 387*61c4878aSAndroid Build Coastguard Worker srcs = [ 388*61c4878aSAndroid Build Coastguard Worker "trace_service.cc", 389*61c4878aSAndroid Build Coastguard Worker ], 390*61c4878aSAndroid Build Coastguard Worker hdrs = [ 391*61c4878aSAndroid Build Coastguard Worker "public/pw_system/trace_service.h", 392*61c4878aSAndroid Build Coastguard Worker ], 393*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 394*61c4878aSAndroid Build Coastguard Worker deps = [ 395*61c4878aSAndroid Build Coastguard Worker ":transfer_handlers", 396*61c4878aSAndroid Build Coastguard Worker "//pw_persistent_ram", 397*61c4878aSAndroid Build Coastguard Worker "//pw_trace_tokenized:trace_service_pwpb", 398*61c4878aSAndroid Build Coastguard Worker ], 399*61c4878aSAndroid Build Coastguard Worker) 400*61c4878aSAndroid Build Coastguard Worker 401*61c4878aSAndroid Build Coastguard Workercc_library( 402*61c4878aSAndroid Build Coastguard Worker name = "crash_handler", 403*61c4878aSAndroid Build Coastguard Worker srcs = [ 404*61c4878aSAndroid Build Coastguard Worker "crash_handler.cc", 405*61c4878aSAndroid Build Coastguard Worker ], 406*61c4878aSAndroid Build Coastguard Worker hdrs = [ 407*61c4878aSAndroid Build Coastguard Worker "public/pw_system/crash_handler.h", 408*61c4878aSAndroid Build Coastguard Worker ], 409*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 410*61c4878aSAndroid Build Coastguard Worker deps = [ 411*61c4878aSAndroid Build Coastguard Worker ":crash_snapshot", 412*61c4878aSAndroid Build Coastguard Worker ":device_handler", 413*61c4878aSAndroid Build Coastguard Worker ":log", 414*61c4878aSAndroid Build Coastguard Worker "//pw_assert_trap:message", 415*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:handler", 416*61c4878aSAndroid Build Coastguard Worker ], 417*61c4878aSAndroid Build Coastguard Worker) 418*61c4878aSAndroid Build Coastguard Worker 419*61c4878aSAndroid Build Coastguard Workercc_library( 420*61c4878aSAndroid Build Coastguard Worker name = "crash_snapshot", 421*61c4878aSAndroid Build Coastguard Worker srcs = [ 422*61c4878aSAndroid Build Coastguard Worker "crash_snapshot.cc", 423*61c4878aSAndroid Build Coastguard Worker ], 424*61c4878aSAndroid Build Coastguard Worker hdrs = [ 425*61c4878aSAndroid Build Coastguard Worker "public/pw_system/crash_snapshot.h", 426*61c4878aSAndroid Build Coastguard Worker ], 427*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 428*61c4878aSAndroid Build Coastguard Worker deps = [ 429*61c4878aSAndroid Build Coastguard Worker ":device_handler", 430*61c4878aSAndroid Build Coastguard Worker ":log", 431*61c4878aSAndroid Build Coastguard Worker ":transfer_handlers", 432*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:entry", 433*61c4878aSAndroid Build Coastguard Worker "//pw_multisink:util", 434*61c4878aSAndroid Build Coastguard Worker "//pw_persistent_ram", 435*61c4878aSAndroid Build Coastguard Worker "//pw_snapshot:snapshot_proto_pwpb", 436*61c4878aSAndroid Build Coastguard Worker "//pw_snapshot:uuid", 437*61c4878aSAndroid Build Coastguard Worker ], 438*61c4878aSAndroid Build Coastguard Worker) 439*61c4878aSAndroid Build Coastguard Worker 440*61c4878aSAndroid Build Coastguard Workerpw_proto_filegroup( 441*61c4878aSAndroid Build Coastguard Worker name = "device_service_proto_and_options", 442*61c4878aSAndroid Build Coastguard Worker srcs = ["pw_system_protos/device_service.proto"], 443*61c4878aSAndroid Build Coastguard Worker options_files = ["pw_system_protos/device_service.options"], 444*61c4878aSAndroid Build Coastguard Worker) 445*61c4878aSAndroid Build Coastguard Worker 446*61c4878aSAndroid Build Coastguard Workerproto_library( 447*61c4878aSAndroid Build Coastguard Worker name = "device_service_proto", 448*61c4878aSAndroid Build Coastguard Worker srcs = [":device_service_proto_and_options"], 449*61c4878aSAndroid Build Coastguard Worker strip_import_prefix = "/pw_system", 450*61c4878aSAndroid Build Coastguard Worker) 451*61c4878aSAndroid Build Coastguard Worker 452*61c4878aSAndroid Build Coastguard Workerpwpb_proto_library( 453*61c4878aSAndroid Build Coastguard Worker name = "device_service_proto_pwpb", 454*61c4878aSAndroid Build Coastguard Worker deps = [":device_service_proto"], 455*61c4878aSAndroid Build Coastguard Worker) 456*61c4878aSAndroid Build Coastguard Worker 457*61c4878aSAndroid Build Coastguard Workerpwpb_rpc_proto_library( 458*61c4878aSAndroid Build Coastguard Worker name = "device_service_pwpb_rpc", 459*61c4878aSAndroid Build Coastguard Worker pwpb_proto_library_deps = [":device_service_proto_pwpb"], 460*61c4878aSAndroid Build Coastguard Worker deps = [":device_service_proto"], 461*61c4878aSAndroid Build Coastguard Worker) 462*61c4878aSAndroid Build Coastguard Worker 463*61c4878aSAndroid Build Coastguard Workerpy_proto_library( 464*61c4878aSAndroid Build Coastguard Worker name = "device_service_py_pb2", 465*61c4878aSAndroid Build Coastguard Worker deps = [":device_service_proto"], 466*61c4878aSAndroid Build Coastguard Worker) 467*61c4878aSAndroid Build Coastguard Worker 468*61c4878aSAndroid Build Coastguard Workercc_library( 469*61c4878aSAndroid Build Coastguard Worker name = "device_service_pwpb", 470*61c4878aSAndroid Build Coastguard Worker srcs = [ 471*61c4878aSAndroid Build Coastguard Worker "device_service_pwpb.cc", 472*61c4878aSAndroid Build Coastguard Worker ], 473*61c4878aSAndroid Build Coastguard Worker hdrs = [ 474*61c4878aSAndroid Build Coastguard Worker "public/pw_system/device_service_pwpb.h", 475*61c4878aSAndroid Build Coastguard Worker ], 476*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 477*61c4878aSAndroid Build Coastguard Worker deps = [ 478*61c4878aSAndroid Build Coastguard Worker ":device_handler", 479*61c4878aSAndroid Build Coastguard Worker ":device_service_pwpb_rpc", 480*61c4878aSAndroid Build Coastguard Worker ], 481*61c4878aSAndroid Build Coastguard Worker) 482*61c4878aSAndroid Build Coastguard Worker 483*61c4878aSAndroid Build Coastguard Workercc_library( 484*61c4878aSAndroid Build Coastguard Worker name = "device_service", 485*61c4878aSAndroid Build Coastguard Worker srcs = [ 486*61c4878aSAndroid Build Coastguard Worker "device_service.cc", 487*61c4878aSAndroid Build Coastguard Worker ], 488*61c4878aSAndroid Build Coastguard Worker hdrs = [ 489*61c4878aSAndroid Build Coastguard Worker "public/pw_system/device_service.h", 490*61c4878aSAndroid Build Coastguard Worker ], 491*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 492*61c4878aSAndroid Build Coastguard Worker deps = [ 493*61c4878aSAndroid Build Coastguard Worker ":device_service_pwpb", 494*61c4878aSAndroid Build Coastguard Worker ], 495*61c4878aSAndroid Build Coastguard Worker) 496*61c4878aSAndroid Build Coastguard Worker 497*61c4878aSAndroid Build Coastguard Workercc_library( 498*61c4878aSAndroid Build Coastguard Worker name = "target_hooks", 499*61c4878aSAndroid Build Coastguard Worker hdrs = [ 500*61c4878aSAndroid Build Coastguard Worker "public/pw_system/target_hooks.h", 501*61c4878aSAndroid Build Coastguard Worker ], 502*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 503*61c4878aSAndroid Build Coastguard Worker deps = [ 504*61c4878aSAndroid Build Coastguard Worker ":target_hooks_backend", 505*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 506*61c4878aSAndroid Build Coastguard Worker ], 507*61c4878aSAndroid Build Coastguard Worker) 508*61c4878aSAndroid Build Coastguard Worker 509*61c4878aSAndroid Build Coastguard Workerlabel_flag( 510*61c4878aSAndroid Build Coastguard Worker name = "target_hooks_backend", 511*61c4878aSAndroid Build Coastguard Worker build_setting_default = ":target_hooks_multiplexer", 512*61c4878aSAndroid Build Coastguard Worker) 513*61c4878aSAndroid Build Coastguard Worker 514*61c4878aSAndroid Build Coastguard Worker# This isn't the best solution, but it's close enough for now. Target hooks are 515*61c4878aSAndroid Build Coastguard Worker# not generically related to an OS, and should be inject-able by downstream 516*61c4878aSAndroid Build Coastguard Worker# projects. For now, assume the pre-baked OS-specific hooks are good enough. 517*61c4878aSAndroid Build Coastguard Workercc_library( 518*61c4878aSAndroid Build Coastguard Worker name = "target_hooks_multiplexer", 519*61c4878aSAndroid Build Coastguard Worker visibility = ["//targets:__pkg__"], 520*61c4878aSAndroid Build Coastguard Worker deps = select({ 521*61c4878aSAndroid Build Coastguard Worker "//pw_build/constraints/rtos:freertos": [":freertos_target_hooks"], 522*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [":stl_target_hooks"], 523*61c4878aSAndroid Build Coastguard Worker }), 524*61c4878aSAndroid Build Coastguard Worker) 525*61c4878aSAndroid Build Coastguard Worker 526*61c4878aSAndroid Build Coastguard Workercc_library( 527*61c4878aSAndroid Build Coastguard Worker name = "stl_target_hooks", 528*61c4878aSAndroid Build Coastguard Worker srcs = [ 529*61c4878aSAndroid Build Coastguard Worker "stl_target_hooks.cc", 530*61c4878aSAndroid Build Coastguard Worker ], 531*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 532*61c4878aSAndroid Build Coastguard Worker deps = [ 533*61c4878aSAndroid Build Coastguard Worker ":config", 534*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 535*61c4878aSAndroid Build Coastguard Worker "//pw_thread_stl:thread", 536*61c4878aSAndroid Build Coastguard Worker ], 537*61c4878aSAndroid Build Coastguard Worker) 538*61c4878aSAndroid Build Coastguard Worker 539*61c4878aSAndroid Build Coastguard Workercc_library( 540*61c4878aSAndroid Build Coastguard Worker name = "freertos_target_hooks", 541*61c4878aSAndroid Build Coastguard Worker srcs = [ 542*61c4878aSAndroid Build Coastguard Worker "freertos_target_hooks.cc", 543*61c4878aSAndroid Build Coastguard Worker ], 544*61c4878aSAndroid Build Coastguard Worker hdrs = [ 545*61c4878aSAndroid Build Coastguard Worker "public/pw_system/target_hooks.h", 546*61c4878aSAndroid Build Coastguard Worker ], 547*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 548*61c4878aSAndroid Build Coastguard Worker target_compatible_with = [ 549*61c4878aSAndroid Build Coastguard Worker "//pw_build/constraints/rtos:freertos", 550*61c4878aSAndroid Build Coastguard Worker ], 551*61c4878aSAndroid Build Coastguard Worker deps = [ 552*61c4878aSAndroid Build Coastguard Worker ":config", 553*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 554*61c4878aSAndroid Build Coastguard Worker "//pw_thread_freertos:thread", 555*61c4878aSAndroid Build Coastguard Worker ], 556*61c4878aSAndroid Build Coastguard Worker) 557*61c4878aSAndroid Build Coastguard Worker 558*61c4878aSAndroid Build Coastguard Workerpw_cc_binary( 559*61c4878aSAndroid Build Coastguard Worker name = "system_example", 560*61c4878aSAndroid Build Coastguard Worker # This is marked as testonly because the example app pulls in the RPC unit 561*61c4878aSAndroid Build Coastguard Worker # test runner. In a real production binary, you wouldn't want to have any 562*61c4878aSAndroid Build Coastguard Worker # testonly dependencies. 563*61c4878aSAndroid Build Coastguard Worker testonly = True, 564*61c4878aSAndroid Build Coastguard Worker srcs = ["example_user_app_init.cc"], 565*61c4878aSAndroid Build Coastguard Worker # TODO(b/365184562): This target does not build with asan and fuzztest. 566*61c4878aSAndroid Build Coastguard Worker target_compatible_with = select({ 567*61c4878aSAndroid Build Coastguard Worker "//pw_fuzzer:use_fuzztest": ["@platforms//:incompatible"], 568*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [], 569*61c4878aSAndroid Build Coastguard Worker }), 570*61c4878aSAndroid Build Coastguard Worker deps = [ 571*61c4878aSAndroid Build Coastguard Worker ":pw_system", 572*61c4878aSAndroid Build Coastguard Worker "//pw_unit_test:rpc_service", 573*61c4878aSAndroid Build Coastguard Worker ], 574*61c4878aSAndroid Build Coastguard Worker) 575*61c4878aSAndroid Build Coastguard Worker 576*61c4878aSAndroid Build Coastguard Workercc_library( 577*61c4878aSAndroid Build Coastguard Worker name = "async", 578*61c4878aSAndroid Build Coastguard Worker srcs = [ 579*61c4878aSAndroid Build Coastguard Worker "pw_system_private/threads.h", 580*61c4878aSAndroid Build Coastguard Worker "system.cc", 581*61c4878aSAndroid Build Coastguard Worker "threads.cc", 582*61c4878aSAndroid Build Coastguard Worker ], 583*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_system/system.h"], 584*61c4878aSAndroid Build Coastguard Worker implementation_deps = [ 585*61c4878aSAndroid Build Coastguard Worker ":async_packet_io", 586*61c4878aSAndroid Build Coastguard Worker ":device_service", 587*61c4878aSAndroid Build Coastguard Worker ":file_manager", 588*61c4878aSAndroid Build Coastguard Worker ":file_service", 589*61c4878aSAndroid Build Coastguard Worker ":log", 590*61c4878aSAndroid Build Coastguard Worker ":thread_snapshot_service", 591*61c4878aSAndroid Build Coastguard Worker ":transfer_service", 592*61c4878aSAndroid Build Coastguard Worker ":work_queue", 593*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:best_fit_block_allocator", 594*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:synchronized_allocator", 595*61c4878aSAndroid Build Coastguard Worker "//pw_async2:allocate_task", 596*61c4878aSAndroid Build Coastguard Worker "//pw_async2:pend_func_task", 597*61c4878aSAndroid Build Coastguard Worker "//pw_hdlc:router", 598*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf:simple_allocator", 599*61c4878aSAndroid Build Coastguard Worker "//pw_rpc/pwpb:echo_service", 600*61c4878aSAndroid Build Coastguard Worker "//pw_sync:interrupt_spin_lock", 601*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 602*61c4878aSAndroid Build Coastguard Worker ] + select({ 603*61c4878aSAndroid Build Coastguard Worker "//pw_cpu_exception:enabled": [ 604*61c4878aSAndroid Build Coastguard Worker ":crash_handler", 605*61c4878aSAndroid Build Coastguard Worker ":crash_snapshot", 606*61c4878aSAndroid Build Coastguard Worker ], 607*61c4878aSAndroid Build Coastguard Worker "//conditions:default": [], 608*61c4878aSAndroid Build Coastguard Worker }), 609*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 610*61c4878aSAndroid Build Coastguard Worker deps = [ 611*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:allocator", 612*61c4878aSAndroid Build Coastguard Worker "//pw_async2:dispatcher", 613*61c4878aSAndroid Build Coastguard Worker "//pw_channel", 614*61c4878aSAndroid Build Coastguard Worker "//pw_rpc", 615*61c4878aSAndroid Build Coastguard Worker ], 616*61c4878aSAndroid Build Coastguard Worker) 617*61c4878aSAndroid Build Coastguard Worker 618*61c4878aSAndroid Build Coastguard Workercc_library( 619*61c4878aSAndroid Build Coastguard Worker name = "async_packet_io", 620*61c4878aSAndroid Build Coastguard Worker srcs = ["async_packet_io.cc"], 621*61c4878aSAndroid Build Coastguard Worker hdrs = ["public/pw_system/internal/async_packet_io.h"], 622*61c4878aSAndroid Build Coastguard Worker implementation_deps = [ 623*61c4878aSAndroid Build Coastguard Worker "//pw_assert", 624*61c4878aSAndroid Build Coastguard Worker "//pw_log", 625*61c4878aSAndroid Build Coastguard Worker ], 626*61c4878aSAndroid Build Coastguard Worker strip_include_prefix = "public", 627*61c4878aSAndroid Build Coastguard Worker visibility = ["//visibility:private"], 628*61c4878aSAndroid Build Coastguard Worker deps = [ 629*61c4878aSAndroid Build Coastguard Worker ":config", 630*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:allocator", 631*61c4878aSAndroid Build Coastguard Worker "//pw_async2:dispatcher", 632*61c4878aSAndroid Build Coastguard Worker "//pw_channel", 633*61c4878aSAndroid Build Coastguard Worker "//pw_channel:forwarding_channel", 634*61c4878aSAndroid Build Coastguard Worker "//pw_containers:inline_var_len_entry_queue", 635*61c4878aSAndroid Build Coastguard Worker "//pw_hdlc:router", 636*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf", 637*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf:simple_allocator", 638*61c4878aSAndroid Build Coastguard Worker "//pw_rpc", 639*61c4878aSAndroid Build Coastguard Worker "//pw_sync:lock_annotations", 640*61c4878aSAndroid Build Coastguard Worker "//pw_sync:mutex", 641*61c4878aSAndroid Build Coastguard Worker "//pw_sync:thread_notification", 642*61c4878aSAndroid Build Coastguard Worker "//pw_thread:thread", 643*61c4878aSAndroid Build Coastguard Worker ], 644*61c4878aSAndroid Build Coastguard Worker) 645*61c4878aSAndroid Build Coastguard Worker 646*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 647*61c4878aSAndroid Build Coastguard Worker name = "async_packet_io_test", 648*61c4878aSAndroid Build Coastguard Worker srcs = ["async_packet_io_test.cc"], 649*61c4878aSAndroid Build Coastguard Worker deps = [ 650*61c4878aSAndroid Build Coastguard Worker ":async_packet_io", 651*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:testing", 652*61c4878aSAndroid Build Coastguard Worker "//pw_channel:loopback_channel", 653*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf:testing", 654*61c4878aSAndroid Build Coastguard Worker ], 655*61c4878aSAndroid Build Coastguard Worker) 656*61c4878aSAndroid Build Coastguard Worker 657*61c4878aSAndroid Build Coastguard Workerpw_cc_test( 658*61c4878aSAndroid Build Coastguard Worker name = "system_async_test", 659*61c4878aSAndroid Build Coastguard Worker srcs = ["system_async_test.cc"], 660*61c4878aSAndroid Build Coastguard Worker deps = [ 661*61c4878aSAndroid Build Coastguard Worker ":async", 662*61c4878aSAndroid Build Coastguard Worker "//pw_allocator:testing", 663*61c4878aSAndroid Build Coastguard Worker "//pw_channel:loopback_channel", 664*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf:testing", 665*61c4878aSAndroid Build Coastguard Worker ], 666*61c4878aSAndroid Build Coastguard Worker) 667*61c4878aSAndroid Build Coastguard Worker 668*61c4878aSAndroid Build Coastguard Workerpw_cc_binary( 669*61c4878aSAndroid Build Coastguard Worker name = "system_async_host_example", 670*61c4878aSAndroid Build Coastguard Worker testonly = True, 671*61c4878aSAndroid Build Coastguard Worker srcs = ["system_async_host_example.cc"], 672*61c4878aSAndroid Build Coastguard Worker deps = [ 673*61c4878aSAndroid Build Coastguard Worker ":async", 674*61c4878aSAndroid Build Coastguard Worker "//pw_channel:epoll_channel", 675*61c4878aSAndroid Build Coastguard Worker "//pw_multibuf:testing", 676*61c4878aSAndroid Build Coastguard Worker ], 677*61c4878aSAndroid Build Coastguard Worker) 678*61c4878aSAndroid Build Coastguard Worker 679*61c4878aSAndroid Build Coastguard Workerhost_device_simulator_binary( 680*61c4878aSAndroid Build Coastguard Worker name = "system_async_host_simulator_example", 681*61c4878aSAndroid Build Coastguard Worker testonly = True, 682*61c4878aSAndroid Build Coastguard Worker binary = ":system_async_host_example", 683*61c4878aSAndroid Build Coastguard Worker) 684*61c4878aSAndroid Build Coastguard Worker 685*61c4878aSAndroid Build Coastguard Workerhost_device_simulator_binary( 686*61c4878aSAndroid Build Coastguard Worker name = "simulator_system_example", 687*61c4878aSAndroid Build Coastguard Worker testonly = True, 688*61c4878aSAndroid Build Coastguard Worker binary = ":system_example", 689*61c4878aSAndroid Build Coastguard Worker) 690*61c4878aSAndroid Build Coastguard Worker 691*61c4878aSAndroid Build Coastguard Workerrp2040_binary( 692*61c4878aSAndroid Build Coastguard Worker name = "rp2040_system_example", 693*61c4878aSAndroid Build Coastguard Worker testonly = True, 694*61c4878aSAndroid Build Coastguard Worker binary = ":system_example", 695*61c4878aSAndroid Build Coastguard Worker) 696*61c4878aSAndroid Build Coastguard Worker 697*61c4878aSAndroid Build Coastguard Workerrp2350_binary( 698*61c4878aSAndroid Build Coastguard Worker name = "rp2350_system_example", 699*61c4878aSAndroid Build Coastguard Worker testonly = True, 700*61c4878aSAndroid Build Coastguard Worker binary = ":system_example", 701*61c4878aSAndroid Build Coastguard Worker) 702*61c4878aSAndroid Build Coastguard Worker 703*61c4878aSAndroid Build Coastguard Workerflash_rp2040( 704*61c4878aSAndroid Build Coastguard Worker name = "flash_rp2040_system_example", 705*61c4878aSAndroid Build Coastguard Worker testonly = True, 706*61c4878aSAndroid Build Coastguard Worker rp2040_binary = ":rp2040_system_example", 707*61c4878aSAndroid Build Coastguard Worker) 708*61c4878aSAndroid Build Coastguard Worker 709*61c4878aSAndroid Build Coastguard Workerflash_rp2350( 710*61c4878aSAndroid Build Coastguard Worker name = "flash_rp2350_system_example", 711*61c4878aSAndroid Build Coastguard Worker testonly = True, 712*61c4878aSAndroid Build Coastguard Worker rp2350_binary = ":rp2350_system_example", 713*61c4878aSAndroid Build Coastguard Worker) 714*61c4878aSAndroid Build Coastguard Worker 715*61c4878aSAndroid Build Coastguard Worker# Start :simulator_system_example and connect to it with pw console. 716*61c4878aSAndroid Build Coastguard Workerdevice_simulator_console( 717*61c4878aSAndroid Build Coastguard Worker name = "simulator_system_example_console", 718*61c4878aSAndroid Build Coastguard Worker testonly = True, 719*61c4878aSAndroid Build Coastguard Worker host_binary = ":simulator_system_example", 720*61c4878aSAndroid Build Coastguard Worker script = "//pw_system/py:device_sim", 721*61c4878aSAndroid Build Coastguard Worker) 722*61c4878aSAndroid Build Coastguard Worker 723*61c4878aSAndroid Build Coastguard Worker# Conect to a Pico running :system_example over serial with the 724*61c4878aSAndroid Build Coastguard Worker# pw-system-console. 725*61c4878aSAndroid Build Coastguard Workerdevice_console( 726*61c4878aSAndroid Build Coastguard Worker name = "rp2040_system_example_console", 727*61c4878aSAndroid Build Coastguard Worker testonly = True, 728*61c4878aSAndroid Build Coastguard Worker binary = ":rp2040_system_example", 729*61c4878aSAndroid Build Coastguard Worker script = "//pw_system/py:pw_system_console", 730*61c4878aSAndroid Build Coastguard Worker) 731*61c4878aSAndroid Build Coastguard Worker 732*61c4878aSAndroid Build Coastguard Workerdevice_console( 733*61c4878aSAndroid Build Coastguard Worker name = "rp2350_system_example_console", 734*61c4878aSAndroid Build Coastguard Worker testonly = True, 735*61c4878aSAndroid Build Coastguard Worker binary = ":rp2350_system_example", 736*61c4878aSAndroid Build Coastguard Worker script = "//pw_system/py:pw_system_console", 737*61c4878aSAndroid Build Coastguard Worker) 738*61c4878aSAndroid Build Coastguard Worker 739*61c4878aSAndroid Build Coastguard Workerfilegroup( 740*61c4878aSAndroid Build Coastguard Worker name = "doxygen", 741*61c4878aSAndroid Build Coastguard Worker srcs = [ 742*61c4878aSAndroid Build Coastguard Worker "public/pw_system/system.h", 743*61c4878aSAndroid Build Coastguard Worker ], 744*61c4878aSAndroid Build Coastguard Worker) 745