|  | # Copyright 2021 The Pigweed Authors | 
|  | # | 
|  | # Licensed under the Apache License, Version 2.0 (the "License"); you may not | 
|  | # use this file except in compliance with the License. You may obtain a copy of | 
|  | # the License at | 
|  | # | 
|  | #     https://www.apache.org/licenses/LICENSE-2.0 | 
|  | # | 
|  | # Unless required by applicable law or agreed to in writing, software | 
|  | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | 
|  | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | 
|  | # License for the specific language governing permissions and limitations under | 
|  | # the License. | 
|  |  | 
|  | import("//build_overrides/pigweed.gni") | 
|  |  | 
|  | import("$dir_pw_docgen/docs.gni") | 
|  | import("$dir_pw_protobuf_compiler/proto.gni") | 
|  | import("$dir_pw_unit_test/test.gni") | 
|  |  | 
|  | group("pw_snapshot") { | 
|  | deps = [ | 
|  | ":metadata_proto", | 
|  | ":snapshot_proto", | 
|  | ] | 
|  | } | 
|  |  | 
|  | # This proto library only contains the snapshot_metadata.proto. Typically this | 
|  | # should be a dependency of snapshot-like protos. | 
|  | pw_proto_library("metadata_proto") { | 
|  | sources = [ "pw_snapshot_protos/snapshot_metadata.proto" ] | 
|  | strip_prefix = "pw_snapshot_protos" | 
|  | prefix = "pw_snapshot_metadata_proto" | 
|  | } | 
|  |  | 
|  | # This proto provides the complete "Snapshot" proto, which depends on various | 
|  | # proto libraries throughout Pigweed. This is the proto library to use when | 
|  | # building/reading snapshots. | 
|  | pw_proto_library("snapshot_proto") { | 
|  | sources = [ "pw_snapshot_protos/snapshot.proto" ] | 
|  | deps = [ | 
|  | ":metadata_proto", | 
|  | "$dir_pw_cpu_exception_cortex_m:cpu_state_protos", | 
|  | "$dir_pw_log:protos", | 
|  | "$dir_pw_thread:protos", | 
|  | ] | 
|  | } | 
|  |  | 
|  | pw_doc_group("docs") { | 
|  | inputs = [ "images/generic_crash_flow.svg" ] | 
|  | sources = [ | 
|  | "design_discussion.rst", | 
|  | "docs.rst", | 
|  | "module_usage.rst", | 
|  | "proto_format.rst", | 
|  | "setup.rst", | 
|  | ] | 
|  | } | 
|  |  | 
|  | pw_test_group("tests") { | 
|  | tests = [ ":cpp_compile_test" ] | 
|  | } | 
|  |  | 
|  | # An empty test to ensure the proto libraries compile correctly. | 
|  | pw_test("cpp_compile_test") { | 
|  | sources = [ "cpp_compile_test.cc" ] | 
|  | deps = [ | 
|  | ":snapshot_proto.pwpb", | 
|  | dir_pw_protobuf, | 
|  | ] | 
|  | } |