blob: 11186aebee88937fbb9af31d10f4db4036ad589b [file] [log] [blame]
# Copyright (C) 2017 The Android Open Source Project
#
# 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
#
# http://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("../../../gn/perfetto.gni")
import("../../../gn/proto_library.gni")
import("../../../gn/protozero_library.gni")
# Common protos used by both the ":minimal_lite" target (for the service) and
# the generic ":lite" target
proto_sources_minimal = [
"clock_snapshot.proto",
"trigger.proto",
"system_info.proto",
]
proto_sources_trusted = [ "trusted_packet.proto" ]
proto_sources = [
"test_event.proto",
"trace_packet.proto",
"trace.proto",
]
# Protozero generated stubs, for writers.
protozero_library("zero") {
deps = [
"../config:zero",
"android:zero",
"chrome:zero",
"filesystem:zero",
"ftrace:zero",
"interned_data:zero",
"power:zero",
"profiling:zero",
"ps:zero",
"sys_stats:zero",
"track_event:zero",
]
sources = proto_sources_minimal + proto_sources
proto_in_dir = "$perfetto_root_path/protos"
proto_out_dir = "$perfetto_root_path/protos"
generator_plugin_options = "wrapper_namespace=pbzero"
}
# Protobuf Lite stubs, for readers.
proto_library("lite") {
generate_python = false
deps = [
":minimal_lite",
"../config:lite",
"android:lite",
"chrome:lite",
"filesystem:lite",
"ftrace:lite",
"interned_data:lite",
"power:lite",
"profiling:lite",
"ps:lite",
"sys_stats:lite",
"track_event:lite",
]
if (perfetto_build_standalone) {
generate_descriptor = "$perfetto_root_path/protos/trace/trace.descriptor"
}
sources = proto_sources
proto_in_dir = "$perfetto_root_path/protos"
proto_out_dir = "$perfetto_root_path/protos"
}
# Contains the subprotos of TracePacket that all targets need.
proto_library("minimal_lite") {
generate_python = false
deps = [
"../config:lite",
]
sources = proto_sources_minimal
proto_in_dir = "$perfetto_root_path/protos"
proto_out_dir = "$perfetto_root_path/protos"
}
# Used by the traced service for packet sanitization.
proto_library("trusted_lite") {
generate_python = false
deps = [
":minimal_lite",
"../common:lite",
"../config:lite",
]
sources = proto_sources_trusted
proto_in_dir = "$perfetto_root_path/protos"
proto_out_dir = "$perfetto_root_path/protos"
}
# This target is not used in the tree and is built only to guarantee that the
# autogenerated merged proto has a valid syntax.
proto_library("merged_trace") {
generate_python = false
proto_in_dir = "$perfetto_root_path/protos"
proto_out_dir = "$perfetto_root_path/protos"
sources = [
"perfetto_trace.proto",
]
}