xref: /aosp_15_r20/external/pigweed/pw_log_rpc/BUILD.gn (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2020 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/module_config.gni")
18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni")
19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_chrono/backend.gni")
20*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni")
21*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_unit_test/test.gni")
22*61c4878aSAndroid Build Coastguard Worker
23*61c4878aSAndroid Build Coastguard Workerdeclare_args() {
24*61c4878aSAndroid Build Coastguard Worker  # The build target that overrides the default configuration options for this
25*61c4878aSAndroid Build Coastguard Worker  # module. This should point to a source set that provides defines through a
26*61c4878aSAndroid Build Coastguard Worker  # public config (which may -include a file or add defines directly).
27*61c4878aSAndroid Build Coastguard Worker  pw_log_rpc_CONFIG = pw_build_DEFAULT_MODULE_CONFIG
28*61c4878aSAndroid Build Coastguard Worker}
29*61c4878aSAndroid Build Coastguard Worker
30*61c4878aSAndroid Build Coastguard Workerconfig("public_include_path") {
31*61c4878aSAndroid Build Coastguard Worker  include_dirs = [ "public" ]
32*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
33*61c4878aSAndroid Build Coastguard Worker}
34*61c4878aSAndroid Build Coastguard Worker
35*61c4878aSAndroid Build Coastguard Worker# TODO: b/297280281 - Windows+gcc+mingw-w64 thinks that some variables are not
36*61c4878aSAndroid Build Coastguard Worker# always initialized. This is a toolchain bug, not a real issue.
37*61c4878aSAndroid Build Coastguard Workerconfig("disable_warning") {
38*61c4878aSAndroid Build Coastguard Worker  cflags = [ "-Wno-maybe-uninitialized" ]
39*61c4878aSAndroid Build Coastguard Worker}
40*61c4878aSAndroid Build Coastguard Worker
41*61c4878aSAndroid Build Coastguard Workerpw_source_set("config") {
42*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_log_rpc/internal/config.h" ]
43*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
44*61c4878aSAndroid Build Coastguard Worker  public_deps = [ pw_log_rpc_CONFIG ]
45*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
46*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
47*61c4878aSAndroid Build Coastguard Worker}
48*61c4878aSAndroid Build Coastguard Worker
49*61c4878aSAndroid Build Coastguard Workerpw_source_set("log_config") {
50*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_log_rpc/internal/log_config.h" ]
51*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
52*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":config" ]
53*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
54*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
55*61c4878aSAndroid Build Coastguard Worker}
56*61c4878aSAndroid Build Coastguard Worker
57*61c4878aSAndroid Build Coastguard Workerpw_source_set("log_service") {
58*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
59*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_log_rpc/log_service.h" ]
60*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_service.cc" ]
61*61c4878aSAndroid Build Coastguard Worker  deps = [
62*61c4878aSAndroid Build Coastguard Worker    ":log_config",
63*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
64*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
65*61c4878aSAndroid Build Coastguard Worker  ]
66*61c4878aSAndroid Build Coastguard Worker  public_deps = [
67*61c4878aSAndroid Build Coastguard Worker    ":rpc_log_drain",
68*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.raw_rpc",
69*61c4878aSAndroid Build Coastguard Worker  ]
70*61c4878aSAndroid Build Coastguard Worker}
71*61c4878aSAndroid Build Coastguard Worker
72*61c4878aSAndroid Build Coastguard Workerpw_source_set("log_filter_service") {
73*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
74*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_log_rpc/log_filter_service.h" ]
75*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_filter_service.cc" ]
76*61c4878aSAndroid Build Coastguard Worker  deps = [
77*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
78*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
79*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
80*61c4878aSAndroid Build Coastguard Worker  ]
81*61c4878aSAndroid Build Coastguard Worker  public_deps = [
82*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
83*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.raw_rpc",
84*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf:bytes_utils",
85*61c4878aSAndroid Build Coastguard Worker  ]
86*61c4878aSAndroid Build Coastguard Worker}
87*61c4878aSAndroid Build Coastguard Worker
88*61c4878aSAndroid Build Coastguard Workerpw_source_set("log_filter") {
89*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
90*61c4878aSAndroid Build Coastguard Worker  public = [
91*61c4878aSAndroid Build Coastguard Worker    "public/pw_log_rpc/log_filter.h",
92*61c4878aSAndroid Build Coastguard Worker    "public/pw_log_rpc/log_filter_map.h",
93*61c4878aSAndroid Build Coastguard Worker  ]
94*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_filter.cc" ]
95*61c4878aSAndroid Build Coastguard Worker  deps = [ "$dir_pw_log" ]
96*61c4878aSAndroid Build Coastguard Worker  public_deps = [
97*61c4878aSAndroid Build Coastguard Worker    ":config",
98*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_assert",
99*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes",
100*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:vector",
101*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
102*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
103*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
104*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
105*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
106*61c4878aSAndroid Build Coastguard Worker  ]
107*61c4878aSAndroid Build Coastguard Worker}
108*61c4878aSAndroid Build Coastguard Worker
109*61c4878aSAndroid Build Coastguard Workerpw_source_set("rpc_log_drain") {
110*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
111*61c4878aSAndroid Build Coastguard Worker  public = [
112*61c4878aSAndroid Build Coastguard Worker    "public/pw_log_rpc/rpc_log_drain.h",
113*61c4878aSAndroid Build Coastguard Worker    "public/pw_log_rpc/rpc_log_drain_map.h",
114*61c4878aSAndroid Build Coastguard Worker  ]
115*61c4878aSAndroid Build Coastguard Worker  sources = [ "rpc_log_drain.cc" ]
116*61c4878aSAndroid Build Coastguard Worker  public_deps = [
117*61c4878aSAndroid Build Coastguard Worker    ":config",
118*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
119*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_assert",
120*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_chrono:system_clock",
121*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_function",
122*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
123*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.raw_rpc",
124*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_multisink",
125*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
126*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
127*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
128*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:lock_annotations",
129*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
130*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
131*61c4878aSAndroid Build Coastguard Worker  ]
132*61c4878aSAndroid Build Coastguard Worker}
133*61c4878aSAndroid Build Coastguard Worker
134*61c4878aSAndroid Build Coastguard Workerpw_source_set("rpc_log_drain_thread") {
135*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
136*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_log_rpc/rpc_log_drain_thread.h" ]
137*61c4878aSAndroid Build Coastguard Worker  public_deps = [
138*61c4878aSAndroid Build Coastguard Worker    ":log_service",
139*61c4878aSAndroid Build Coastguard Worker    ":rpc_log_drain",
140*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_chrono:system_clock",
141*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_multisink",
142*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
143*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:server_api",
144*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
145*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:timed_thread_notification",
146*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:thread",
147*61c4878aSAndroid Build Coastguard Worker  ]
148*61c4878aSAndroid Build Coastguard Worker  if (current_os == "win") {
149*61c4878aSAndroid Build Coastguard Worker    public_configs += [ ":disable_warning" ]
150*61c4878aSAndroid Build Coastguard Worker  }
151*61c4878aSAndroid Build Coastguard Worker}
152*61c4878aSAndroid Build Coastguard Worker
153*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_utils") {
154*61c4878aSAndroid Build Coastguard Worker  # TODO: b/303282642 - Remove this testonly
155*61c4878aSAndroid Build Coastguard Worker  testonly = pw_unit_test_TESTONLY
156*61c4878aSAndroid Build Coastguard Worker
157*61c4878aSAndroid Build Coastguard Worker  public_deps = [
158*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes",
159*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:vector",
160*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log_tokenized:metadata",
161*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
162*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_unit_test",
163*61c4878aSAndroid Build Coastguard Worker  ]
164*61c4878aSAndroid Build Coastguard Worker  deps = [
165*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
166*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
167*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf:bytes_utils",
168*61c4878aSAndroid Build Coastguard Worker  ]
169*61c4878aSAndroid Build Coastguard Worker  public = [ "pw_log_rpc_private/test_utils.h" ]
170*61c4878aSAndroid Build Coastguard Worker  sources = [ "test_utils.cc" ]
171*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
172*61c4878aSAndroid Build Coastguard Worker}
173*61c4878aSAndroid Build Coastguard Worker
174*61c4878aSAndroid Build Coastguard Workerpw_test("log_service_test") {
175*61c4878aSAndroid Build Coastguard Worker  enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != ""
176*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_service_test.cc" ]
177*61c4878aSAndroid Build Coastguard Worker  deps = [
178*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
179*61c4878aSAndroid Build Coastguard Worker    ":log_service",
180*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
181*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:vector",
182*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
183*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:proto_utils",
184*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
185*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log_tokenized:metadata",
186*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
187*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf:bytes_utils",
188*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
189*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:test_method_context",
190*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
191*61c4878aSAndroid Build Coastguard Worker  ]
192*61c4878aSAndroid Build Coastguard Worker}
193*61c4878aSAndroid Build Coastguard Worker
194*61c4878aSAndroid Build Coastguard Workerpw_test("log_filter_service_test") {
195*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_filter_service_test.cc" ]
196*61c4878aSAndroid Build Coastguard Worker  deps = [
197*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
198*61c4878aSAndroid Build Coastguard Worker    ":log_filter_service",
199*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
200*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
201*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf:bytes_utils",
202*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
203*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:test_method_context",
204*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
205*61c4878aSAndroid Build Coastguard Worker  ]
206*61c4878aSAndroid Build Coastguard Worker}
207*61c4878aSAndroid Build Coastguard Worker
208*61c4878aSAndroid Build Coastguard Workerpw_test("log_filter_test") {
209*61c4878aSAndroid Build Coastguard Worker  sources = [ "log_filter_test.cc" ]
210*61c4878aSAndroid Build Coastguard Worker  deps = [
211*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
212*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log",
213*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:proto_utils",
214*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
215*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log_tokenized:metadata",
216*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
217*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
218*61c4878aSAndroid Build Coastguard Worker  ]
219*61c4878aSAndroid Build Coastguard Worker}
220*61c4878aSAndroid Build Coastguard Worker
221*61c4878aSAndroid Build Coastguard Workerpw_test("rpc_log_drain_test") {
222*61c4878aSAndroid Build Coastguard Worker  enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != ""
223*61c4878aSAndroid Build Coastguard Worker  sources = [ "rpc_log_drain_test.cc" ]
224*61c4878aSAndroid Build Coastguard Worker  deps = [
225*61c4878aSAndroid Build Coastguard Worker    ":log_filter",
226*61c4878aSAndroid Build Coastguard Worker    ":log_service",
227*61c4878aSAndroid Build Coastguard Worker    ":rpc_log_drain",
228*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
229*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes",
230*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:proto_utils",
231*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log:protos.pwpb",
232*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_log_tokenized:metadata",
233*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_multisink",
234*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_protobuf",
235*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc:common",
236*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:fake_channel_output",
237*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:server_api",
238*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_rpc/raw:test_method_context",
239*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
240*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
241*61c4878aSAndroid Build Coastguard Worker  ]
242*61c4878aSAndroid Build Coastguard Worker
243*61c4878aSAndroid Build Coastguard Worker  # TODO: https://pwbug.dev/325509758 - Doesn't work on the Pico yet; hangs
244*61c4878aSAndroid Build Coastguard Worker  # indefinitely.
245*61c4878aSAndroid Build Coastguard Worker  if (pw_build_EXECUTABLE_TARGET_TYPE == "pico_executable") {
246*61c4878aSAndroid Build Coastguard Worker    enable_if = false
247*61c4878aSAndroid Build Coastguard Worker  }
248*61c4878aSAndroid Build Coastguard Worker}
249*61c4878aSAndroid Build Coastguard Worker
250*61c4878aSAndroid Build Coastguard Worker# TODO(cachinchilla): update docs.
251*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") {
252*61c4878aSAndroid Build Coastguard Worker  sources = [ "docs.rst" ]
253*61c4878aSAndroid Build Coastguard Worker}
254*61c4878aSAndroid Build Coastguard Worker
255*61c4878aSAndroid Build Coastguard Workerpw_test_group("tests") {
256*61c4878aSAndroid Build Coastguard Worker  tests = [
257*61c4878aSAndroid Build Coastguard Worker    ":log_filter_test",
258*61c4878aSAndroid Build Coastguard Worker    ":log_filter_service_test",
259*61c4878aSAndroid Build Coastguard Worker    ":log_service_test",
260*61c4878aSAndroid Build Coastguard Worker    ":rpc_log_drain_test",
261*61c4878aSAndroid Build Coastguard Worker  ]
262*61c4878aSAndroid Build Coastguard Worker}
263