| # Copyright 2024 The Pigweed Authors | 
 | # | 
 | # Licensed under the Apache License, Version 2.0 (the "License"); you may not | 
 | # use this file except in compliance with the License. You may obtain a copy of | 
 | # the License at | 
 | # | 
 | #     https://www.apache.org/licenses/LICENSE-2.0 | 
 | # | 
 | # Unless required by applicable law or agreed to in writing, software | 
 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
 | # License for the specific language governing permissions and limitations under | 
 | # the License. | 
 |  | 
 | load("@pigweed//pw_build:pigweed.bzl", "pw_cc_test") | 
 | load( | 
 |     "@pigweed//pw_protobuf_compiler:pw_proto_library.bzl", | 
 |     "nanopb_proto_library", | 
 |     "nanopb_rpc_proto_library", | 
 | ) | 
 | load("@rules_cc//cc:cc_library.bzl", "cc_library") | 
 | load("@rules_python//python:proto.bzl", "py_proto_library") | 
 |  | 
 | package(default_visibility = ["//visibility:public"]) | 
 |  | 
 | cc_library( | 
 |     name = "blinky", | 
 |     srcs = ["blinky.cc"], | 
 |     hdrs = ["blinky.h"], | 
 |     implementation_deps = [ | 
 |         "@pigweed//pw_log", | 
 |         "@pigweed//pw_preprocessor", | 
 |     ], | 
 |     deps = [ | 
 |         "//system", | 
 |         "@pigweed//pw_async2:coro", | 
 |         "@pigweed//pw_async2:coro_or_else_task", | 
 |         "@pigweed//pw_async2:dispatcher", | 
 |         "@pigweed//pw_async2:time_provider", | 
 |         "@pigweed//pw_chrono:system_clock", | 
 |         "@pigweed//pw_function", | 
 |         "@pigweed//pw_sync:interrupt_spin_lock", | 
 |         "@pigweed//pw_sync:lock_annotations", | 
 |         "@pigweed//pw_system:async", | 
 |     ], | 
 | ) | 
 |  | 
 | pw_cc_test( | 
 |     name = "blinky_test", | 
 |     srcs = ["blinky_test.cc"], | 
 |     deps = [ | 
 |         ":blinky", | 
 |         "@pigweed//pw_allocator:testing", | 
 |         "@pigweed//pw_async2:dispatcher", | 
 |         "@pigweed//pw_async2:simulated_time_provider", | 
 |         "@pigweed//pw_digital_io:digital_io_mock", | 
 |         "@pigweed//pw_unit_test", | 
 |     ], | 
 | ) | 
 |  | 
 | cc_library( | 
 |     name = "service", | 
 |     srcs = ["service.cc"], | 
 |     hdrs = ["service.h"], | 
 |     implementation_deps = ["@pigweed//pw_assert:check"], | 
 |     deps = [ | 
 |         ":blinky", | 
 |         ":nanopb_rpc", | 
 |         "@pigweed//pw_allocator:allocator", | 
 |         "@pigweed//pw_async2:dispatcher", | 
 |     ], | 
 | ) | 
 |  | 
 | proto_library( | 
 |     name = "proto", | 
 |     srcs = ["blinky.proto"], | 
 |     import_prefix = "blinky_pb", | 
 |     strip_import_prefix = "/modules/blinky", | 
 |     deps = [ | 
 |         "@pigweed//pw_protobuf:common_proto", | 
 |     ], | 
 | ) | 
 |  | 
 | nanopb_proto_library( | 
 |     name = "nanopb", | 
 |     deps = [":proto"], | 
 | ) | 
 |  | 
 | nanopb_rpc_proto_library( | 
 |     name = "nanopb_rpc", | 
 |     nanopb_proto_library_deps = [":nanopb"], | 
 |     deps = [":proto"], | 
 | ) | 
 |  | 
 | py_proto_library( | 
 |     name = "py_pb2", | 
 |     deps = [":proto"], | 
 | ) |