blob: 54065f2af972f3d4f4f99658e818e5f843a60e79 [file] [log] [blame]
Wyatt Hepler610f0622021-06-15 14:47:33 -07001# Copyright 2021 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7# https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
Anthony DiGirolamod63bd742021-08-19 16:13:30 -070015load("//pw_build:pigweed.bzl", "pw_cc_library", "pw_cc_test")
16load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library")
17load("@com_google_protobuf//:protobuf.bzl", "py_proto_library")
18load("@rules_proto//proto:defs.bzl", "proto_library")
Wyatt Hepler610f0622021-06-15 14:47:33 -070019
20package(default_visibility = ["//visibility:public"])
21
Rob Mohrd1a11982021-07-26 11:12:22 -070022licenses(["notice"])
Wyatt Hepler610f0622021-06-15 14:47:33 -070023
24pw_cc_library(
25 name = "pw_transfer",
Alexei Frolovf93cb262021-07-14 16:05:15 -070026 srcs = [
27 "chunk.cc",
Alexei Frolov563946f2021-08-05 18:58:48 -070028 "context.cc",
Alexei Frolovf93cb262021-07-14 16:05:15 -070029 "pw_transfer_private/chunk.h",
Rob Mohr671d1352021-08-02 13:04:36 -070030 "transfer.cc",
31 ],
32 hdrs = [
33 "public/pw_transfer/handler.h",
Alexei Frolov563946f2021-08-05 18:58:48 -070034 "public/pw_transfer/internal/context.h",
Rob Mohr671d1352021-08-02 13:04:36 -070035 "public/pw_transfer/transfer.h",
Wyatt Hepler610f0622021-06-15 14:47:33 -070036 ],
37 includes = ["public"],
38 deps = [
39 "//pw_assert",
Alexei Frolovf93cb262021-07-14 16:05:15 -070040 "//pw_bytes",
Wyatt Hepler610f0622021-06-15 14:47:33 -070041 "//pw_containers:intrusive_list",
Alexei Frolovf93cb262021-07-14 16:05:15 -070042 "//pw_log",
Anthony DiGirolamod63bd742021-08-19 16:13:30 -070043 "//pw_protobuf",
Alexei Frolovf93cb262021-07-14 16:05:15 -070044 "//pw_result",
Wyatt Hepler610f0622021-06-15 14:47:33 -070045 "//pw_status",
46 "//pw_stream",
Anthony DiGirolamod63bd742021-08-19 16:13:30 -070047 ":transfer_pwpb",
48 "//pw_rpc:internal_packet_pwpb",
49 # "//pw_rpc:server",
50 "//pw_rpc/raw:method_union",
51 # "//pw_rpc/raw:test_method_context",
52 "//pw_rpc:internal_test_utils",
Wyatt Hepler610f0622021-06-15 14:47:33 -070053 ],
54)
55
56pw_cc_test(
57 name = "handler_test",
58 srcs = ["handler_test.cc"],
59 deps = [
60 ":pw_transfer",
61 "//pw_unit_test",
62 ],
63)
Alexei Frolovf93cb262021-07-14 16:05:15 -070064
65pw_cc_test(
66 name = "transfer_test",
67 srcs = ["transfer_test.cc"],
68 deps = [
69 ":pw_transfer",
70 "//pw_rpc/raw:test_method_context",
71 "//pw_unit_test",
72 ],
73)
Wyatt Hepler22530402021-07-30 23:40:40 -070074
75cc_binary(
76 name = "test_rpc_server",
77 srcs = ["test_rpc_server.cc"],
78 deps = [
79 ":pw_transfer",
80 "//pw_log",
81 "//pw_rpc/system_server",
Wyatt Hepler22530402021-07-30 23:40:40 -070082 ],
83)
Anthony DiGirolamod63bd742021-08-19 16:13:30 -070084
85proto_library(
86 name = "transfer_proto",
87 srcs = [
88 "transfer.proto",
89 ],
90)
91
92pw_proto_library(
93 name = "transfer_pwpb",
94 deps = [":transfer_proto"],
95)
96
97py_proto_library(
98 name = "transfer_proto_pb2",
99 srcs = ["transfer.proto"],
100)