# Copyright 2014 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("//build/buildflag_header.gni") interfaces_bindings_gen_dir = "$root_gen_dir/mojo/public/interfaces/bindings" declare_args() { enable_mojo_tracing = false } buildflag_header("mojo_features") { header = "mojo_features.h" flags = [ "MOJO_TRACE_ENABLED=$enable_mojo_tracing" ] } component("bindings") { sources = [ # Normally, targets should depend on the source_sets generated by mojom # targets. However, the generated source_sets use portions of the bindings # library. In order to avoid linker warnings about locally-defined imports # in Windows components build, this target depends on the generated C++ # files directly so that the EXPORT macro defintions match. "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared-internal.h", "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared.cc", "$interfaces_bindings_gen_dir/interface_control_messages.mojom-shared.h", "$interfaces_bindings_gen_dir/interface_control_messages.mojom.cc", "$interfaces_bindings_gen_dir/interface_control_messages.mojom.h", "$interfaces_bindings_gen_dir/native_struct.mojom-shared-internal.h", "$interfaces_bindings_gen_dir/native_struct.mojom-shared.cc", "$interfaces_bindings_gen_dir/native_struct.mojom-shared.h", "$interfaces_bindings_gen_dir/native_struct.mojom.cc", "$interfaces_bindings_gen_dir/native_struct.mojom.h", "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared-internal.h", "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared.cc", "$interfaces_bindings_gen_dir/pipe_control_messages.mojom-shared.h", "$interfaces_bindings_gen_dir/pipe_control_messages.mojom.cc", "$interfaces_bindings_gen_dir/pipe_control_messages.mojom.h", "array_data_view.h", "array_traits_span.h", "array_traits_stl.h", "associated_binding.h", "associated_binding_set.h", "associated_group.h", "associated_group_controller.h", "associated_interface_ptr.h", "associated_interface_ptr_info.h", "associated_interface_request.h", "binding.h", "binding_set.h", "bindings_export.h", "clone_traits.h", "connection_error_callback.h", "connector.h", "disconnect_reason.h", "equals_traits.h", "filter_chain.h", "interface_data_view.h", "interface_endpoint_client.h", "interface_endpoint_controller.h", "interface_id.h", "interface_ptr.h", "interface_ptr_info.h", "interface_ptr_set.h", "interface_request.h", "lib/array_internal.cc", "lib/array_internal.h", "lib/array_serialization.h", "lib/associated_binding.cc", "lib/associated_group.cc", "lib/associated_group_controller.cc", "lib/associated_interface_ptr.cc", "lib/associated_interface_ptr_state.cc", "lib/associated_interface_ptr_state.h", "lib/binding_state.cc", "lib/binding_state.h", "lib/bindings_internal.h", "lib/buffer.cc", "lib/buffer.h", "lib/connector.cc", "lib/control_message_handler.cc", "lib/control_message_handler.h", "lib/control_message_proxy.cc", "lib/control_message_proxy.h", "lib/filter_chain.cc", "lib/fixed_buffer.cc", "lib/fixed_buffer.h", "lib/handle_interface_serialization.h", "lib/hash_util.h", "lib/interface_endpoint_client.cc", "lib/interface_ptr_state.cc", "lib/interface_ptr_state.h", "lib/map_data_internal.h", "lib/map_serialization.h", "lib/may_auto_lock.h", "lib/message.cc", "lib/message_header_validator.cc", "lib/message_internal.cc", "lib/message_internal.h", "lib/multiplex_router.cc", "lib/multiplex_router.h", "lib/native_enum_data.h", "lib/native_enum_serialization.h", "lib/native_struct_serialization.cc", "lib/native_struct_serialization.h", "lib/pipe_control_message_handler.cc", "lib/pipe_control_message_proxy.cc", "lib/scoped_interface_endpoint_handle.cc", "lib/serialization.h", "lib/serialization_context.cc", "lib/serialization_context.h", "lib/serialization_forward.h", "lib/serialization_util.h", "lib/string_serialization.h", "lib/string_traits_string16.cc", "lib/sync_call_restrictions.cc", "lib/sync_event_watcher.cc", "lib/sync_handle_registry.cc", "lib/sync_handle_watcher.cc", "lib/task_runner_helper.cc", "lib/task_runner_helper.h", "lib/unserialized_message_context.cc", "lib/unserialized_message_context.h", "lib/validate_params.h", "lib/validation_context.cc", "lib/validation_context.h", "lib/validation_errors.cc", "lib/validation_errors.h", "lib/validation_util.cc", "lib/validation_util.h", "map.h", "map_data_view.h", "map_traits_stl.h", "message.h", "message_header_validator.h", "native_enum.h", "pipe_control_message_handler.h", "pipe_control_message_handler_delegate.h", "pipe_control_message_proxy.h", "raw_ptr_impl_ref_traits.h", "scoped_interface_endpoint_handle.h", "string_data_view.h", "string_traits_stl.h", "string_traits_string16.h", "string_traits_string_piece.h", "strong_associated_binding.h", "strong_binding.h", "strong_binding_set.h", "struct_ptr.h", "sync_call_restrictions.h", "sync_event_watcher.h", "sync_handle_registry.h", "sync_handle_watcher.h", "thread_safe_interface_ptr.h", "type_converter.h", "unique_ptr_impl_ref_traits.h", ] public_deps = [ ":mojo_features", ":struct_traits", "//base", "//ipc:message_support", "//ipc:param_traits", "//mojo/public/cpp/system", ] deps = [ "//base", "//ipc:native_handle_type_converters", "//mojo/public/interfaces/bindings:bindings__generator", "//mojo/public/interfaces/bindings:bindings_shared__generator", ] defines = [ "MOJO_CPP_BINDINGS_IMPLEMENTATION" ] } source_set("struct_traits") { sources = [ "array_traits.h", "enum_traits.h", "lib/template_util.h", "map_traits.h", "string_traits.h", "struct_traits.h", "union_traits.h", ] } if (!is_ios) { # TODO(yzshen): crbug.com/617718 Consider moving this into blink. source_set("wtf_support") { sources = [ "array_traits_wtf_vector.h", "lib/string_traits_wtf.cc", "lib/wtf_clone_equals_util.h", "lib/wtf_hash_util.h", "lib/wtf_serialization.h", "map_traits_wtf_hash_map.h", "string_traits_wtf.h", ] public_deps = [ ":bindings", "//third_party/WebKit/Source/platform/wtf", ] public_configs = [ "//third_party/WebKit/Source:config" ] } }