• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2020 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
15import("//build_overrides/pigweed.gni")
16
17import("$dir_pw_build/target_types.gni")
18import("$dir_pw_chrono/backend.gni")
19import("$dir_pw_docgen/docs.gni")
20import("$dir_pw_unit_test/test.gni")
21
22config("public_include_path") {
23  include_dirs = [ "public" ]
24  visibility = [ ":*" ]
25}
26
27pw_source_set("config") {
28  sources = [ "public/pw_log_rpc/internal/config.h" ]
29  public_configs = [ ":public_include_path" ]
30  visibility = [ "./*" ]
31  friend = [ "./*" ]
32}
33
34pw_source_set("log_config") {
35  sources = [ "public/pw_log_rpc/internal/log_config.h" ]
36  public_configs = [ ":public_include_path" ]
37  public_deps = [ ":config" ]
38  visibility = [ "./*" ]
39  friend = [ "./*" ]
40}
41
42pw_source_set("log_service") {
43  public_configs = [ ":public_include_path" ]
44  public = [ "public/pw_log_rpc/log_service.h" ]
45  sources = [ "log_service.cc" ]
46  deps = [
47    ":log_config",
48    "$dir_pw_log",
49    "$dir_pw_log:protos.pwpb",
50  ]
51  public_deps = [
52    ":rpc_log_drain",
53    "$dir_pw_log:protos.raw_rpc",
54  ]
55}
56
57pw_source_set("log_filter_service") {
58  public_configs = [ ":public_include_path" ]
59  public = [ "public/pw_log_rpc/log_filter_service.h" ]
60  sources = [ "log_filter_service.cc" ]
61  deps = [
62    "$dir_pw_log:protos.pwpb",
63    "$dir_pw_protobuf",
64  ]
65  public_deps = [
66    ":log_filter",
67    "$dir_pw_log:protos.raw_rpc",
68    "$dir_pw_protobuf:bytes_utils",
69  ]
70}
71
72pw_source_set("log_filter") {
73  public_configs = [ ":public_include_path" ]
74  public = [
75    "public/pw_log_rpc/log_filter.h",
76    "public/pw_log_rpc/log_filter_map.h",
77  ]
78  sources = [ "log_filter.cc" ]
79  deps = [
80    "$dir_pw_log",
81    "$dir_pw_protobuf",
82  ]
83  public_deps = [
84    ":config",
85    "$dir_pw_assert",
86    "$dir_pw_bytes",
87    "$dir_pw_containers:vector",
88    "$dir_pw_log:protos.pwpb",
89    "$dir_pw_protobuf",
90    "$dir_pw_status",
91  ]
92}
93
94pw_source_set("rpc_log_drain") {
95  public_configs = [ ":public_include_path" ]
96  public = [
97    "public/pw_log_rpc/rpc_log_drain.h",
98    "public/pw_log_rpc/rpc_log_drain_map.h",
99  ]
100  sources = [ "rpc_log_drain.cc" ]
101  public_deps = [
102    ":config",
103    ":log_filter",
104    "$dir_pw_assert",
105    "$dir_pw_chrono:system_clock",
106    "$dir_pw_function",
107    "$dir_pw_log:protos.pwpb",
108    "$dir_pw_log:protos.raw_rpc",
109    "$dir_pw_multisink",
110    "$dir_pw_protobuf",
111    "$dir_pw_result",
112    "$dir_pw_status",
113    "$dir_pw_sync:lock_annotations",
114    "$dir_pw_sync:mutex",
115  ]
116}
117
118pw_source_set("rpc_log_drain_thread") {
119  public_configs = [ ":public_include_path" ]
120  public = [ "public/pw_log_rpc/rpc_log_drain_thread.h" ]
121  public_deps = [
122    ":log_service",
123    ":rpc_log_drain",
124    "$dir_pw_chrono:system_clock",
125    "$dir_pw_multisink",
126    "$dir_pw_result",
127    "$dir_pw_rpc/raw:server_api",
128    "$dir_pw_status",
129    "$dir_pw_sync:timed_thread_notification",
130    "$dir_pw_thread:thread",
131  ]
132}
133
134pw_source_set("test_utils") {
135  public_deps = [
136    "$dir_pw_bytes",
137    "$dir_pw_containers:vector",
138    "$dir_pw_log_tokenized:metadata",
139    "$dir_pw_protobuf",
140    "$dir_pw_unit_test",
141  ]
142  deps = [
143    "$dir_pw_log",
144    "$dir_pw_log:protos.pwpb",
145    "$dir_pw_protobuf:bytes_utils",
146  ]
147  public = [ "pw_log_rpc_private/test_utils.h" ]
148  sources = [ "test_utils.cc" ]
149  visibility = [ ":*" ]
150}
151
152pw_test("log_service_test") {
153  enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != ""
154  sources = [ "log_service_test.cc" ]
155  deps = [
156    ":log_filter",
157    ":log_service",
158    ":test_utils",
159    "$dir_pw_containers:vector",
160    "$dir_pw_log",
161    "$dir_pw_log:proto_utils",
162    "$dir_pw_log:protos.pwpb",
163    "$dir_pw_log_tokenized:metadata",
164    "$dir_pw_protobuf",
165    "$dir_pw_protobuf:bytes_utils",
166    "$dir_pw_result",
167    "$dir_pw_rpc/raw:test_method_context",
168    "$dir_pw_status",
169  ]
170}
171
172pw_test("log_filter_service_test") {
173  sources = [ "log_filter_service_test.cc" ]
174  deps = [
175    ":log_filter",
176    ":log_filter_service",
177    "$dir_pw_log:protos.pwpb",
178    "$dir_pw_protobuf",
179    "$dir_pw_protobuf:bytes_utils",
180    "$dir_pw_result",
181    "$dir_pw_rpc/raw:test_method_context",
182    "$dir_pw_status",
183  ]
184}
185
186pw_test("log_filter_test") {
187  sources = [ "log_filter_test.cc" ]
188  deps = [
189    ":log_filter",
190    "$dir_pw_log:proto_utils",
191    "$dir_pw_log:protos.pwpb",
192    "$dir_pw_log_tokenized:metadata",
193    "$dir_pw_result",
194    "$dir_pw_status",
195  ]
196}
197
198pw_test("rpc_log_drain_test") {
199  enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != ""
200  sources = [ "rpc_log_drain_test.cc" ]
201  deps = [
202    ":log_filter",
203    ":log_service",
204    ":rpc_log_drain",
205    ":test_utils",
206    "$dir_pw_bytes",
207    "$dir_pw_log:proto_utils",
208    "$dir_pw_log:protos.pwpb",
209    "$dir_pw_log_tokenized:metadata",
210    "$dir_pw_multisink",
211    "$dir_pw_protobuf",
212    "$dir_pw_rpc:common",
213    "$dir_pw_rpc/raw:fake_channel_output",
214    "$dir_pw_rpc/raw:server_api",
215    "$dir_pw_rpc/raw:test_method_context",
216    "$dir_pw_status",
217    "$dir_pw_sync:mutex",
218  ]
219}
220
221# TODO(cachinchilla): update docs.
222pw_doc_group("docs") {
223  sources = [ "docs.rst" ]
224}
225
226pw_test_group("tests") {
227  tests = [
228    ":log_filter_test",
229    ":log_filter_service_test",
230    ":log_service_test",
231    ":rpc_log_drain_test",
232  ]
233}
234