xref: /aosp_15_r20/external/pigweed/pw_log/CMakeLists.txt (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
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16include($ENV{PW_ROOT}/pw_log/backend.cmake)
17include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake)
18
19pw_add_module_config(pw_log_CONFIG)
20
21pw_add_module_config(pw_log_GLOG_ADAPTER_CONFIG)
22
23pw_add_library(pw_log.config INTERFACE
24  HEADERS
25    public/pw_log/config.h
26  PUBLIC_INCLUDES
27    public
28  PUBLIC_DEPS
29    ${pw_log_CONFIG}
30)
31
32pw_add_facade(pw_log INTERFACE
33  BACKEND
34    pw_log_BACKEND
35  HEADERS
36    public/pw_log/levels.h
37    public/pw_log/log.h
38    public/pw_log/options.h
39    public/pw_log/short.h
40    public/pw_log/shorter.h
41    public/pw_log/tokenized_args.h
42  PUBLIC_INCLUDES
43    public
44  PUBLIC_DEPS
45    pw_log.config
46)
47
48pw_add_library(pw_log.rate_limited STATIC
49  HEADERS
50    public/pw_log/rate_limited.h
51  PUBLIC_INCLUDES
52    public
53  PUBLIC_DEPS
54    pw_log
55    pw_chrono.system_clock
56  SOURCES
57    rate_limited.cc
58)
59
60pw_add_library(pw_log.glog_adapter INTERFACE
61  HEADERS
62    public/pw_log/glog_adapter.h
63    public/pw_log/glog_adapter_config.h
64    public/pw_log/internal/glog_adapter.h
65  PUBLIC_INCLUDES
66    public
67  PUBLIC_DEPS
68    pw_assert
69    pw_log
70    pw_log.config
71    pw_preprocessor
72    pw_string
73    ${pw_log_GLOG_ADAPTER_CONFIG}
74)
75
76pw_add_library(pw_log.proto_utils STATIC
77  HEADERS
78    public/pw_log/proto_utils.h
79  PUBLIC_INCLUDES
80    public
81  PUBLIC_DEPS
82    pw_log.facade
83    pw_bytes
84    pw_log.protos.pwpb
85    pw_log_tokenized.metadata
86    pw_result
87  PRIVATE_DEPS
88    pw_protobuf
89  SOURCES
90    proto_utils.cc
91)
92
93pw_proto_library(pw_log.protos
94  SOURCES
95    log.proto
96  PREFIX
97    pw_log/proto
98  DEPS
99    pw_protobuf.common_proto
100    pw_tokenizer.proto
101)
102
103if(NOT "${pw_log_BACKEND}" STREQUAL "")
104  pw_add_test(pw_log.basic_log_test
105    SOURCES
106      basic_log_test.cc
107      basic_log_test_plain_c.c
108    PRIVATE_DEPS
109      pw_log
110      pw_preprocessor
111    GROUPS
112      modules
113      pw_log
114  )
115
116  pw_add_test(pw_log.glog_adapter_test
117    SOURCES
118      glog_adapter_test.cc
119    PRIVATE_DEPS
120      pw_log.glog_adapter
121    GROUPS
122      modules
123      pw_log
124  )
125
126  pw_add_test(pw_log.proto_utils_test
127    SOURCES
128      proto_utils_test.cc
129    PRIVATE_DEPS
130      pw_log
131      pw_log.proto_utils
132      pw_log.protos.pwpb
133      pw_preprocessor
134      pw_protobuf
135      pw_protobuf.bytes_utils
136      pw_containers
137    GROUPS
138      modules
139      pw_log
140  )
141endif()
142