xref: /aosp_15_r20/external/pigweed/pw_log_rpc/CMakeLists.txt (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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)
133
134pw_add_library(pw_log_rpc.test_utils STATIC
135  HEADERS
136    pw_log_rpc_private/test_utils.h
137  PUBLIC_DEPS
138    pw_bytes
139    pw_containers.vector
140    pw_log_tokenized.metadata
141    pw_protobuf
142    pw_unit_test
143  SOURCES
144    test_utils.cc
145  PRIVATE_DEPS
146    pw_log
147    pw_log.protos.pwpb
148    pw_protobuf.bytes_utils
149)
150
151if(NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "")
152  pw_add_test(pw_log_rpc.log_service_test
153    SOURCES
154      log_service_test.cc
155    PRIVATE_DEPS
156      pw_containers.vector
157      pw_log
158      pw_log.proto_utils
159      pw_log.protos.pwpb
160      pw_log_rpc.log_filter
161      pw_log_rpc.log_service
162      pw_log_rpc.test_utils
163      pw_log_tokenized.metadata
164      pw_protobuf
165      pw_protobuf.bytes_utils
166      pw_result
167      pw_rpc.raw.test_method_context
168      pw_status
169    GROUPS
170      modules
171      pw_log_rpc
172  )
173endif()
174
175pw_add_test(pw_log_rpc.log_filter_service_test
176  SOURCES
177    log_filter_service_test.cc
178  PRIVATE_DEPS
179    pw_log.protos.pwpb
180    pw_log_rpc.log_filter
181    pw_log_rpc.log_filter_service
182    pw_protobuf
183    pw_protobuf.bytes_utils
184    pw_result
185    pw_rpc.raw.test_method_context
186    pw_status
187  GROUPS
188    modules
189    pw_log_rpc
190)
191
192pw_add_test(pw_log_rpc.log_filter_test
193  SOURCES
194    log_filter_test.cc
195  PRIVATE_DEPS
196    pw_log
197    pw_log.proto_utils
198    pw_log.protos.pwpb
199    pw_log_rpc.log_filter
200    pw_log_tokenized.metadata
201    pw_result
202    pw_status
203  GROUPS
204    modules
205    pw_log_rpc
206)
207
208if(NOT "${pw_chrono.system_clock_BACKEND}" STREQUAL "")
209  pw_add_test(pw_log_rpc.rpc_log_drain_test
210    SOURCES
211      rpc_log_drain_test.cc
212    PRIVATE_DEPS
213      pw_bytes
214      pw_log.proto_utils
215      pw_log.protos.pwpb
216      pw_log_rpc.log_filter
217      pw_log_rpc.log_service
218      pw_log_rpc.rpc_log_drain
219      pw_log_rpc.test_utils
220      pw_log_tokenized.metadata
221      pw_multisink
222      pw_protobuf
223      pw_rpc.common
224      pw_rpc.raw.fake_channel_output
225      pw_rpc.raw.server_api
226      pw_rpc.raw.test_method_context
227      pw_status
228      pw_sync.mutex
229    GROUPS
230      modules
231      pw_log_rpc
232  )
233endif()
234