# 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", "synced_property.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" ] }