| # Copyright 2014 The Chromium Authors |
| # 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") |
| import("protocol_sources.gni") |
| |
| proto_library("protocol") { |
| proto_in_dir = "//" |
| sources = sync_protocol_sources |
| extra_configs = [ "//build/config/compiler:wexit_time_destructors" ] |
| } |
| |
| # TODO(crbug.com/41449994): It seems some code implicitly depends on "util" due to |
| # it being listed in public_deps of upper directories (even though it doesn't |
| # fit the definition of public_deps). Consider using a group() to expose this |
| # together with the "protocol" target and simplify things. |
| static_library("util") { |
| sources = [ |
| "collaboration_metadata.cc", |
| "collaboration_metadata.h", |
| "data_type_state_helper.cc", |
| "data_type_state_helper.h", |
| "entity_data.cc", |
| "entity_data.h", |
| "proto_enum_conversions.cc", |
| "proto_enum_conversions.h", |
| "proto_memory_estimations.cc", |
| "proto_memory_estimations.h", |
| "proto_value_conversions.cc", |
| "proto_value_conversions.h", |
| "proto_visitors.h", |
| ] |
| |
| public_deps = [ |
| "//base", |
| "//components/sync/base", |
| "//google_apis", |
| ] |
| } |
| |
| if (is_android) { |
| import("//build/config/android/rules.gni") |
| |
| proto_java_library("protocol_java") { |
| proto_path = "//" |
| sources = sync_protocol_sources |
| } |
| } |
| |
| action("prepare_full_proto") { |
| script = "prepare_full_proto.py" |
| |
| inputs = [ |
| "sync_collaboration_attribution.proto", |
| "shared_tab_group_data_specifics.proto", |
| "unique_position.proto", |
| ] |
| |
| outputs = [ |
| "$target_gen_dir/sync_collaboration_attribution_full_proto.proto", |
| "$target_gen_dir/shared_tab_group_data_specifics_full_proto.proto", |
| "$target_gen_dir/unique_position_full_proto.proto", |
| ] |
| |
| args = [ rebase_path(target_gen_dir, root_build_dir) ] |
| |
| foreach(f, inputs) { |
| args += [ rebase_path(f, root_build_dir) ] |
| } |
| } |
| |
| proto_library("full_proto") { |
| testonly = true |
| proto_in_dir = root_gen_dir |
| proto_out_dir = "." |
| sources = get_target_outputs(":prepare_full_proto") |
| |
| proto_deps = [ ":prepare_full_proto" ] |
| |
| use_protobuf_full = true |
| import_dirs = [ "//third_party/protobuf/src" ] |
| } |