blob: f06e8697f7bb2856fdc1829f1eca76165a7f8cb0 [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//third_party/protobuf/proto_library.gni")
# Use a group here to allow external targets to depend on "cc/proto" instead of
# cc/proto:cc_proto. We need a group because other component targets are named
# "proto" which breaks component builds. A group doesn't have the same issue.
group("proto") {
public_deps = [
":cc_proto",
]
}
component("cc_proto") {
# Only expose the target to the "proto" group.
visibility = [ ":proto" ]
public_deps = [
":proto_internal",
]
}
proto_library("proto_internal") {
# Only expose the target to the "cc_proto" target.
visibility = [ ":cc_proto" ]
sources = [
# TODO(dtrainor): Move protos to their correct packages once it's possible
# to include protos from other directories/targets (crbug.com/542423).
"begin_main_frame_and_commit_state.proto",
"commit_earlyout_reason.proto",
"compositor_message.proto",
"compositor_message_to_impl.proto",
"compositor_message_to_main.proto",
"display_item.proto",
"display_list_recording_source.proto",
"layer.proto",
"layer_position_constraint.proto",
"layer_selection_bound.proto",
"layer_tree_debug_state.proto",
"layer_tree_host.proto",
"layer_tree_settings.proto",
"managed_memory_policy.proto",
"memory_allocation.proto",
"point.proto",
"point3f.proto",
"pointf.proto",
"property_tree.proto",
"rect.proto",
"rectf.proto",
"region.proto",
"renderer_settings.proto",
"scroll_offset.proto",
"size.proto",
"sizef.proto",
"skregion.proto",
"skrrect.proto",
"skxfermode.proto",
"transform.proto",
"vector2d.proto",
"vector2df.proto",
]
deps = [
"//third_party/protobuf:protobuf_lite",
]
cc_generator_options = "dllexport_decl=CC_PROTO_EXPORT:"
cc_include = "cc/proto/cc_proto_export.h"
defines = [ "CC_PROTO_IMPLEMENTATION" ]
# Warn if clang creates exit destructors.
extra_configs = [ "//build/config/compiler:wexit_time_destructors" ]
}