• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2023 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
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16
17pw_add_module_config(pw_log_rpc_CONFIG)
18
19pw_add_library(pw_log_rpc.config INTERFACE
20  HEADERS
21    public/pw_log_rpc/internal/config.h
22  PUBLIC_INCLUDES
23    public
24  PUBLIC_DEPS
25    ${pw_log_rpc_CONFIG}
26)
27
28pw_add_library(pw_log_rpc.log_config INTERFACE
29  HEADERS
30    public/pw_log_rpc/internal/log_config.h
31  PUBLIC_INCLUDES
32    public
33  PUBLIC_DEPS
34    pw_log_rpc.config
35)
36
37pw_add_library(pw_log_rpc.log_service STATIC
38  HEADERS
39    public/pw_log_rpc/log_service.h
40  PUBLIC_INCLUDES
41    public
42  PUBLIC_DEPS
43    pw_log_rpc.rpc_log_drain
44    pw_log.protos.raw_rpc
45  SOURCES
46    log_service.cc
47  PRIVATE_DEPS
48    pw_log
49    pw_log.protos.pwpb
50    pw_log_rpc.log_config
51)
52
53pw_add_library(pw_log_rpc.log_filter_service STATIC
54  HEADERS
55    public/pw_log_rpc/log_filter_service.h
56  PUBLIC_INCLUDES
57    public
58  PUBLIC_DEPS
59    pw_log.protos.raw_rpc
60    pw_log_rpc.log_filter
61    pw_protobuf.bytes_utils
62  SOURCES
63    log_filter_service.cc
64  PRIVATE_DEPS
65    pw_log
66    pw_log.protos.pwpb
67    pw_protobuf
68)
69
70pw_add_library(pw_log_rpc.log_filter STATIC
71  HEADERS
72    public/pw_log_rpc/log_filter.h
73    public/pw_log_rpc/log_filter_map.h
74  PUBLIC_INCLUDES
75    public
76  PUBLIC_DEPS
77    pw_assert
78    pw_bytes
79    pw_containers.vector
80    pw_log.protos.pwpb
81    pw_log_rpc.config
82    pw_protobuf
83    pw_span
84    pw_status
85  SOURCES
86    log_filter.cc
87  PRIVATE_DEPS
88    pw_log
89    pw_log.protos.pwpb
90)
91
92pw_add_library(pw_log_rpc.rpc_log_drain STATIC
93  HEADERS
94    public/pw_log_rpc/rpc_log_drain.h
95    public/pw_log_rpc/rpc_log_drain_map.h
96  PUBLIC_INCLUDES
97    public
98  PUBLIC_DEPS
99    pw_assert
100    pw_chrono.system_clock
101    pw_function
102    pw_log.protos.pwpb
103    pw_log.protos.raw_rpc
104    pw_log_rpc.config
105    pw_log_rpc.log_filter
106    pw_multisink
107    pw_protobuf
108    pw_result
109    pw_span
110    pw_status
111    pw_sync.lock_annotations
112    pw_sync.mutex
113  SOURCES
114    rpc_log_drain.cc
115)
116
117pw_add_library(pw_log_rpc.rpc_log_drain_thread INTERFACE
118  HEADERS
119    public/pw_log_rpc/rpc_log_drain_thread.h
120  PUBLIC_INCLUDES
121    public
122  PUBLIC_DEPS
123    pw_chrono.system_clock
124    pw_log_rpc.log_service
125    pw_log_rpc.rpc_log_drain
126    pw_multisink
127    pw_result
128    pw_rpc.raw.server_api
129    pw_status
130    pw_sync.timed_thread_notification
131    pw_thread.thread
132    pw_thread.thread_core
133)
134
135pw_add_library(pw_log_rpc.test_utils STATIC
136  HEADERS
137    pw_log_rpc_private/test_utils.h
138  PUBLIC_DEPS
139    pw_bytes
140    pw_containers.vector
141    pw_log_tokenized.metadata
142    pw_protobuf
143    pw_unit_test
144  SOURCES
145    test_utils.cc
146  PRIVATE_DEPS
147    pw_log
148    pw_log.protos.pwpb
149    pw_protobuf.bytes_utils
150)
151
152if(NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "")
153  pw_add_test(pw_log_rpc.log_service_test
154    SOURCES
155      log_service_test.cc
156    PRIVATE_DEPS
157      pw_containers.vector
158      pw_log
159      pw_log.proto_utils
160      pw_log.protos.pwpb
161      pw_log_rpc.log_filter
162      pw_log_rpc.log_service
163      pw_log_rpc.test_utils
164      pw_log_tokenized.metadata
165      pw_protobuf
166      pw_protobuf.bytes_utils
167      pw_result
168      pw_rpc.raw.test_method_context
169      pw_status
170    GROUPS
171      modules
172      pw_log_rpc
173  )
174endif()
175
176pw_add_test(pw_log_rpc.log_filter_service_test
177  SOURCES
178    log_filter_service_test.cc
179  PRIVATE_DEPS
180    pw_log.protos.pwpb
181    pw_log_rpc.log_filter
182    pw_log_rpc.log_filter_service
183    pw_protobuf
184    pw_protobuf.bytes_utils
185    pw_result
186    pw_rpc.raw.test_method_context
187    pw_status
188  GROUPS
189    modules
190    pw_log_rpc
191)
192
193pw_add_test(pw_log_rpc.log_filter_test
194  SOURCES
195    log_filter_test.cc
196  PRIVATE_DEPS
197    pw_log
198    pw_log.proto_utils
199    pw_log.protos.pwpb
200    pw_log_rpc.log_filter
201    pw_log_tokenized.metadata
202    pw_result
203    pw_status
204  GROUPS
205    modules
206    pw_log_rpc
207)
208
209if(NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "")
210  pw_add_test(pw_log_rpc.rpc_log_drain_test
211    SOURCES
212      rpc_log_drain_test.cc
213    PRIVATE_DEPS
214      pw_bytes
215      pw_log.proto_utils
216      pw_log.protos.pwpb
217      pw_log_rpc.log_filter
218      pw_log_rpc.log_service
219      pw_log_rpc.rpc_log_drain
220      pw_log_rpc.test_utils
221      pw_log_tokenized.metadata
222      pw_multisink
223      pw_protobuf
224      pw_rpc.common
225      pw_rpc.raw.fake_channel_output
226      pw_rpc.raw.server_api
227      pw_rpc.raw.test_method_context
228      pw_status
229      pw_sync.mutex
230    GROUPS
231      modules
232      pw_log_rpc
233  )
234endif()
235