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 15import("//build_overrides/pigweed.gni") 16 17import("$dir_pw_build/target_types.gni") 18import("$dir_pw_chrono/backend.gni") 19import("$dir_pw_docgen/docs.gni") 20import("$dir_pw_unit_test/test.gni") 21 22config("public_include_path") { 23 include_dirs = [ "public" ] 24 visibility = [ ":*" ] 25} 26 27pw_source_set("config") { 28 sources = [ "public/pw_log_rpc/internal/config.h" ] 29 public_configs = [ ":public_include_path" ] 30 visibility = [ "./*" ] 31 friend = [ "./*" ] 32} 33 34pw_source_set("log_config") { 35 sources = [ "public/pw_log_rpc/internal/log_config.h" ] 36 public_configs = [ ":public_include_path" ] 37 public_deps = [ ":config" ] 38 visibility = [ "./*" ] 39 friend = [ "./*" ] 40} 41 42pw_source_set("log_service") { 43 public_configs = [ ":public_include_path" ] 44 public = [ "public/pw_log_rpc/log_service.h" ] 45 sources = [ "log_service.cc" ] 46 deps = [ 47 ":log_config", 48 "$dir_pw_log", 49 "$dir_pw_log:protos.pwpb", 50 ] 51 public_deps = [ 52 ":rpc_log_drain", 53 "$dir_pw_log:protos.raw_rpc", 54 ] 55} 56 57pw_source_set("log_filter_service") { 58 public_configs = [ ":public_include_path" ] 59 public = [ "public/pw_log_rpc/log_filter_service.h" ] 60 sources = [ "log_filter_service.cc" ] 61 deps = [ 62 "$dir_pw_log:protos.pwpb", 63 "$dir_pw_protobuf", 64 ] 65 public_deps = [ 66 ":log_filter", 67 "$dir_pw_log:protos.raw_rpc", 68 "$dir_pw_protobuf:bytes_utils", 69 ] 70} 71 72pw_source_set("log_filter") { 73 public_configs = [ ":public_include_path" ] 74 public = [ 75 "public/pw_log_rpc/log_filter.h", 76 "public/pw_log_rpc/log_filter_map.h", 77 ] 78 sources = [ "log_filter.cc" ] 79 deps = [ 80 "$dir_pw_log", 81 "$dir_pw_protobuf", 82 ] 83 public_deps = [ 84 ":config", 85 "$dir_pw_assert", 86 "$dir_pw_bytes", 87 "$dir_pw_containers:vector", 88 "$dir_pw_log:protos.pwpb", 89 "$dir_pw_protobuf", 90 "$dir_pw_status", 91 ] 92} 93 94pw_source_set("rpc_log_drain") { 95 public_configs = [ ":public_include_path" ] 96 public = [ 97 "public/pw_log_rpc/rpc_log_drain.h", 98 "public/pw_log_rpc/rpc_log_drain_map.h", 99 ] 100 sources = [ "rpc_log_drain.cc" ] 101 public_deps = [ 102 ":config", 103 ":log_filter", 104 "$dir_pw_assert", 105 "$dir_pw_chrono:system_clock", 106 "$dir_pw_function", 107 "$dir_pw_log:protos.pwpb", 108 "$dir_pw_log:protos.raw_rpc", 109 "$dir_pw_multisink", 110 "$dir_pw_protobuf", 111 "$dir_pw_result", 112 "$dir_pw_status", 113 "$dir_pw_sync:lock_annotations", 114 "$dir_pw_sync:mutex", 115 ] 116} 117 118pw_source_set("rpc_log_drain_thread") { 119 public_configs = [ ":public_include_path" ] 120 public = [ "public/pw_log_rpc/rpc_log_drain_thread.h" ] 121 public_deps = [ 122 ":log_service", 123 ":rpc_log_drain", 124 "$dir_pw_chrono:system_clock", 125 "$dir_pw_multisink", 126 "$dir_pw_result", 127 "$dir_pw_rpc/raw:server_api", 128 "$dir_pw_status", 129 "$dir_pw_sync:timed_thread_notification", 130 "$dir_pw_thread:thread", 131 ] 132} 133 134pw_source_set("test_utils") { 135 public_deps = [ 136 "$dir_pw_bytes", 137 "$dir_pw_containers:vector", 138 "$dir_pw_log_tokenized:metadata", 139 "$dir_pw_protobuf", 140 "$dir_pw_unit_test", 141 ] 142 deps = [ 143 "$dir_pw_log", 144 "$dir_pw_log:protos.pwpb", 145 "$dir_pw_protobuf:bytes_utils", 146 ] 147 public = [ "pw_log_rpc_private/test_utils.h" ] 148 sources = [ "test_utils.cc" ] 149 visibility = [ ":*" ] 150} 151 152pw_test("log_service_test") { 153 enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != "" 154 sources = [ "log_service_test.cc" ] 155 deps = [ 156 ":log_filter", 157 ":log_service", 158 ":test_utils", 159 "$dir_pw_containers:vector", 160 "$dir_pw_log", 161 "$dir_pw_log:proto_utils", 162 "$dir_pw_log:protos.pwpb", 163 "$dir_pw_log_tokenized:metadata", 164 "$dir_pw_protobuf", 165 "$dir_pw_protobuf:bytes_utils", 166 "$dir_pw_result", 167 "$dir_pw_rpc/raw:test_method_context", 168 "$dir_pw_status", 169 ] 170} 171 172pw_test("log_filter_service_test") { 173 sources = [ "log_filter_service_test.cc" ] 174 deps = [ 175 ":log_filter", 176 ":log_filter_service", 177 "$dir_pw_log:protos.pwpb", 178 "$dir_pw_protobuf", 179 "$dir_pw_protobuf:bytes_utils", 180 "$dir_pw_result", 181 "$dir_pw_rpc/raw:test_method_context", 182 "$dir_pw_status", 183 ] 184} 185 186pw_test("log_filter_test") { 187 sources = [ "log_filter_test.cc" ] 188 deps = [ 189 ":log_filter", 190 "$dir_pw_log:proto_utils", 191 "$dir_pw_log:protos.pwpb", 192 "$dir_pw_log_tokenized:metadata", 193 "$dir_pw_result", 194 "$dir_pw_status", 195 ] 196} 197 198pw_test("rpc_log_drain_test") { 199 enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != "" 200 sources = [ "rpc_log_drain_test.cc" ] 201 deps = [ 202 ":log_filter", 203 ":log_service", 204 ":rpc_log_drain", 205 ":test_utils", 206 "$dir_pw_bytes", 207 "$dir_pw_log:proto_utils", 208 "$dir_pw_log:protos.pwpb", 209 "$dir_pw_log_tokenized:metadata", 210 "$dir_pw_multisink", 211 "$dir_pw_protobuf", 212 "$dir_pw_rpc:common", 213 "$dir_pw_rpc/raw:fake_channel_output", 214 "$dir_pw_rpc/raw:server_api", 215 "$dir_pw_rpc/raw:test_method_context", 216 "$dir_pw_status", 217 "$dir_pw_sync:mutex", 218 ] 219} 220 221# TODO(cachinchilla): update docs. 222pw_doc_group("docs") { 223 sources = [ "docs.rst" ] 224} 225 226pw_test_group("tests") { 227 tests = [ 228 ":log_filter_test", 229 ":log_filter_service_test", 230 ":log_service_test", 231 ":rpc_log_drain_test", 232 ] 233} 234