# Copyright 2021 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("@com_google_protobuf//:protobuf.bzl", "py_proto_library") load("@rules_proto//proto:defs.bzl", "proto_library") load( "//pw_build:pigweed.bzl", "pw_cc_library", "pw_cc_test", ) load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library") package(default_visibility = ["//visibility:public"]) licenses(["notice"]) proto_library( name = "tuf_proto", srcs = [ "tuf.proto", ], deps = [ "@com_google_protobuf//:timestamp_proto", ], ) proto_library( name = "update_bundle_proto", srcs = [ "update_bundle.proto", ], deps = [ ":tuf_proto", ], ) pw_proto_library( name = "update_bundle_proto_cc", deps = [":update_bundle_proto"], ) proto_library( name = "bundled_update_proto", srcs = [ "bundled_update.proto", ], deps = [ "//pw_protobuf:common_proto", "//pw_tokenizer:tokenizer_proto", "@com_google_protobuf//:any_proto", ], ) # TODO(b/241456982): Not expected to build yet. py_proto_library( name = "bundled_update_py_pb2", srcs = ["bundled_update.proto"], ) pw_proto_library( name = "bundled_update_proto_cc", deps = [":bundled_update_proto"], ) pw_cc_library( name = "openable_reader", hdrs = [ "public/pw_software_update/openable_reader.h", ], deps = [ "//pw_stream", ], ) pw_cc_library( name = "blob_store_openable_reader", hdrs = [ "public/pw_software_update/blob_store_openable_reader.h", ], deps = [ ":openable_reader", ], ) pw_cc_library( name = "update_bundle", srcs = [ "manifest_accessor.cc", "update_bundle_accessor.cc", ], hdrs = [ "public/pw_software_update/bundled_update_backend.h", "public/pw_software_update/config.h", "public/pw_software_update/manifest_accessor.h", "public/pw_software_update/update_bundle_accessor.h", ], includes = ["public"], deps = [ ":blob_store_openable_reader", ":openable_reader", ":update_bundle_proto_cc.pwpb", "//pw_blob_store", "//pw_kvs", "//pw_log", "//pw_protobuf", "//pw_status", "//pw_stream", "//pw_string", ], ) pw_cc_library( name = "bundled_update_service", srcs = ["bundled_update_service.cc"], hdrs = ["public/pw_software_update/bundled_update_service.h"], includes = ["public"], deps = [ ":bundled_update_proto_cc.nanopb_rpc", ":bundled_update_proto_cc.pwpb", ":update_bundle", ":update_bundle_proto_cc.nanopb_rpc", ":update_bundle_proto_cc.pwpb", "//pw_log", "//pw_result", "//pw_status", "//pw_sync:borrow", "//pw_sync:lock_annotations", "//pw_sync:mutex", "//pw_tokenizer", "//pw_work_queue", ], ) pw_cc_library( name = "bundled_update_service_pwpb", srcs = ["bundled_update_service_pwpb.cc"], hdrs = ["public/pw_software_update/bundled_update_service_pwpb.h"], includes = ["public"], deps = [ ":bundled_update_proto_cc.pwpb", ":bundled_update_proto_cc.pwpb_rpc", ":update_bundle", ":update_bundle_proto_cc.pwpb", ":update_bundle_proto_cc.pwpb_rpc", "//pw_log", "//pw_result", "//pw_status", "//pw_string:util", "//pw_sync:borrow", "//pw_sync:lock_annotations", "//pw_sync:mutex", "//pw_tokenizer", "//pw_work_queue", ], ) pw_cc_test( name = "update_bundle_test", srcs = ["update_bundle_test.cc"], deps = [ ":update_bundle", "//pw_kvs:fake_flash_test_key_value_store", "//pw_unit_test", ], ) pw_cc_test( name = "bundled_update_service_test", srcs = ["bundled_update_service_test.cc"], deps = [ ":bundled_update_service", "//pw_unit_test", ], ) pw_cc_test( name = "bundled_update_service_pwpb_test", srcs = ["bundled_update_service_pwpb_test.cc"], deps = [ ":bundled_update_service_pwpb", "//pw_unit_test", ], )