xref: /aosp_15_r20/external/pigweed/pw_log_tokenized/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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
15load("//pw_build:pw_facade.bzl", "pw_facade")
16load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test")
17
18package(default_visibility = ["//visibility:public"])
19
20licenses(["notice"])
21
22cc_library(
23    name = "headers",
24    hdrs = [
25        "public/pw_log_tokenized/config.h",
26        "public/pw_log_tokenized/log_tokenized.h",
27        "public/pw_log_tokenized/metadata.h",
28    ],
29    strip_include_prefix = "public",
30    deps = [
31        ":config_override",
32        "//pw_log:pw_log.facade",
33        "//pw_polyfill",
34        "//pw_tokenizer",
35    ],
36)
37
38label_flag(
39    name = "config_override",
40    build_setting_default = "//pw_build:default_module_config",
41)
42
43cc_library(
44    name = "pw_log_tokenized",
45    srcs = ["log_tokenized.cc"],
46    hdrs = [
47        "public_overrides/pw_log_backend/log_backend.h",
48        "public_overrides/pw_log_backend/log_backend_uses_pw_tokenizer.h",
49    ],
50    includes = [
51        "public_overrides",
52    ],
53    deps = [
54        ":handler.facade",
55        ":headers",
56        "//pw_log:pw_log.facade",
57    ],
58)
59
60cc_library(
61    name = "gcc_partially_tokenized",
62    srcs = ["log_tokenized.cc"],
63    hdrs = [
64        "gcc_partially_tokenized_public_overrides/pw_log_backend/log_backend.h",
65        "public/pw_log_tokenized/gcc_partially_tokenized.h",
66    ],
67    includes = [
68        "gcc_partially_tokenized_public_overrides",
69        "public",
70    ],
71    deps = [
72        ":handler",
73        ":headers",
74        "//pw_log:pw_log.facade",
75        "//pw_log_string:handler",
76    ],
77)
78
79alias(
80    name = "impl",
81    actual = ":handler",
82)
83
84pw_facade(
85    name = "handler",
86    hdrs = ["public/pw_log_tokenized/handler.h"],
87    backend = ":handler_backend",
88    strip_include_prefix = "public",
89    deps = ["//pw_preprocessor"],
90)
91
92label_flag(
93    name = "handler_backend",
94    build_setting_default = ":base64_over_hdlc",
95)
96
97# There is no default backend for now.
98cc_library(
99    name = "backend_multiplexer",
100    visibility = ["//targets:__pkg__"],
101)
102
103cc_library(
104    name = "base64",
105    hdrs = ["public/pw_log_tokenized/base64.h"],
106    strip_include_prefix = "public",
107    deps = [
108        ":headers",  # Only config.h is needed
109        "//pw_tokenizer:base64",
110    ],
111)
112
113cc_library(
114    name = "base64_over_hdlc",
115    srcs = ["base64_over_hdlc.cc"],
116    deps = [
117        ":base64",
118        ":handler.facade",
119        "//pw_hdlc",
120        "//pw_stream:sys_io_stream",
121        "//pw_tokenizer:base64",
122    ],
123)
124
125pw_cc_test(
126    name = "log_tokenized_test",
127    srcs = [
128        "log_tokenized_test.cc",
129        "log_tokenized_test_c.c",
130        "pw_log_tokenized_private/test_utils.h",
131    ],
132    deps = [
133        ":base64",
134        ":headers",
135        "//pw_unit_test",
136    ],
137)
138
139pw_cc_test(
140    name = "metadata_test",
141    srcs = [
142        "metadata_test.cc",
143    ],
144    deps = [
145        ":headers",
146        "//pw_unit_test",
147    ],
148)
149
150pw_cc_test(
151    name = "tokenized_args_test",
152    srcs = [
153        "tokenized_args_test.cc",
154    ],
155    deps = [
156        ":headers",
157        "//pw_log:args",
158        "//pw_tokenizer",
159        "//pw_unit_test",
160    ],
161)
162
163filegroup(
164    name = "doxygen",
165    srcs = [
166        "public/pw_log_tokenized/base64.h",
167        "public/pw_log_tokenized/config.h",
168        "public/pw_log_tokenized/handler.h",
169        "public/pw_log_tokenized/metadata.h",
170    ],
171)
172