• 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
15load(
16    "//pw_build:pigweed.bzl",
17    "pw_cc_facade",
18    "pw_cc_library",
19    "pw_cc_test",
20)
21load("//pw_protobuf_compiler:proto.bzl", "pw_proto_library")
22load("//pw_build/bazel_internal:py_proto_library.bzl", "py_proto_library")
23
24package(default_visibility = ["//visibility:public"])
25
26licenses(["notice"])
27
28pw_cc_facade(
29    name = "facade",
30    hdrs = [
31        "public/pw_log/config.h",
32        "public/pw_log/levels.h",
33        "public/pw_log/log.h",
34        "public/pw_log/options.h",
35        "public/pw_log/short.h",
36        "public/pw_log/shorter.h",
37    ],
38    includes = ["public"],
39    deps = [
40        "//pw_preprocessor",
41    ],
42)
43
44pw_cc_library(
45    name = "pw_log",
46    deps = [
47        ":facade",
48        "@pigweed_config//:pw_log_backend",
49    ],
50)
51
52pw_cc_library(
53    name = "glog_adapter",
54    hdrs = [
55        "public/pw_log/glog_adapter.h",
56        "public/pw_log/glog_adapter_config.h",
57        "public/pw_log/internal/glog_adapter.h",
58    ],
59    includes = ["public"],
60    deps = [
61        "//pw_assert",
62        "//pw_log",
63        "//pw_preprocessor",
64        "//pw_string",
65    ],
66)
67
68pw_cc_library(
69    name = "proto_utils",
70    srcs = [
71        "proto_utils.cc",
72    ],
73    hdrs = [
74        "public/pw_log/proto_utils.h",
75    ],
76    deps = [
77        ":facade",
78        ":log_proto_cc.pwpb",
79        "//pw_bytes",
80        "//pw_log_tokenized:headers",
81        "//pw_protobuf",
82        "//pw_result",
83    ],
84)
85
86proto_library(
87    name = "log_proto",
88    srcs = [
89        "log.proto",
90    ],
91    import_prefix = "pw_log/proto",
92    strip_import_prefix = "/pw_log",
93    deps = [
94        "//pw_protobuf:common_proto",
95        "//pw_tokenizer:tokenizer_proto",
96    ],
97)
98
99# TODO(b/241456982): Not expected to build yet.
100py_proto_library(
101    name = "log_proto_py_pb2",
102    tags = ["manual"],
103    deps = [":log_proto"],
104)
105
106java_lite_proto_library(
107    name = "log_java_proto_lite",
108    deps = [":log_proto"],
109)
110
111pw_proto_library(
112    name = "log_proto_cc",
113    deps = [":log_proto"],
114)
115
116pw_cc_library(
117    name = "backend_multiplexer",
118    visibility = ["@pigweed_config//:__pkg__"],
119    deps = ["//pw_log_basic"],
120)
121
122pw_cc_test(
123    name = "test",
124    srcs = [
125        "basic_log_test.cc",
126        "basic_log_test_plain_c.c",
127    ],
128    deps = [
129        ":facade",
130        ":pw_log",
131        "//pw_preprocessor",
132        "//pw_unit_test",
133    ],
134)
135
136pw_cc_test(
137    name = "glog_adapter_test",
138    srcs = [
139        "glog_adapter_test.cc",
140    ],
141    deps = [
142        ":glog_adapter",
143        "//pw_unit_test",
144    ],
145)
146
147pw_cc_test(
148    name = "proto_utils_test",
149    srcs = [
150        "proto_utils_test.cc",
151    ],
152    deps = [
153        ":facade",
154        ":log_proto_cc.pwpb",
155        ":proto_utils",
156        "//pw_containers",
157        "//pw_preprocessor",
158        "//pw_protobuf",
159        "//pw_protobuf:bytes_utils",
160        "//pw_unit_test",
161    ],
162)
163